问题描述
我想用 pybind11 绑定函数模板(函数模板本身不是类型、函数或任何其他实体。不会从仅包含模板定义的源文件生成代码。)。>
template<typename tree_iterator>
auto function(const tree_iterator first,const tree_iterator last) {
tree_iterator ti,tj;
auto ntrees = last - first;
return ntrees;
}
我该如何解决这个问题?
当我执行 python setup.py bdist_wheel --force_debug
命令时出现此错误:
-- Configuring done
-- Generating done
-- Build files have been written to: /home/user/workspace/dragon/multiband-fusion/build/temp.linux-x86_64-3.8
Scanning dependencies of target mbfusion
[ 50%] Building CXX object src/CMakeFiles/mbfusion.dir/main.cpp.o
/home/user/workspace/dragon/multiband-fusion/src/main.cpp: In function ‘void hg::tree_fusion_internal::pybind11_init_mbfusion(pybind11::module_&)’:
/home/user/workspace/dragon/multiband-fusion/src/main.cpp:64:63: error: no matching function for call to ‘pybind11::module_::def(const char [9],<unresolved overloaded function type>,const char [21])’
64 | m.def("function",function,"An example function.");
| ^
In file included from /home/user/workspace/dragon/multiband-fusion/src/main.cpp:1:
/home/user/anaconda3/envs/dragon/lib/python3.8/site-packages/higra/lib/include/pybind11/pybind11.h:911:14: note: candidate: ‘template<class Func,class ... Extra> pybind11::module_& pybind11::module_::def(const char*,Func&&,const Extra& ...)’
911 | module_ &def(const char *name_,Func &&f,const Extra& ... extra) {
| ^~~
/home/user/anaconda3/envs/dragon/lib/python3.8/site-packages/higra/lib/include/pybind11/pybind11.h:911:14: note: template argument deduction/substitution Failed:
/home/user/workspace/dragon/multiband-fusion/src/main.cpp:64:63: note: Couldn’t deduce template parameter ‘Func’
64 | m.def("function","An example function.");
| ^
make[2]: *** [src/CMakeFiles/mbfusion.dir/build.make:82: src/CMakeFiles/mbfusion.dir/main.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:134: src/CMakeFiles/mbfusion.dir/all] Error 2
make: *** [Makefile:114: all] Error 2
Traceback (most recent call last):
File "setup.py",line 70,in <module>
setup(
File "/home/user/anaconda3/envs/dragon/lib/python3.8/site-packages/setuptools/__init__.py",line 153,in setup
return distutils.core.setup(**attrs)
File "/home/user/anaconda3/envs/dragon/lib/python3.8/distutils/core.py",line 148,in setup
dist.run_commands()
File "/home/user/anaconda3/envs/dragon/lib/python3.8/distutils/dist.py",line 966,in run_commands
self.run_command(cmd)
File "/home/user/anaconda3/envs/dragon/lib/python3.8/distutils/dist.py",line 985,in run_command
cmd_obj.run()
File "/home/user/anaconda3/envs/dragon/lib/python3.8/site-packages/wheel/bdist_wheel.py",line 299,in run
self.run_command('build')
File "/home/user/anaconda3/envs/dragon/lib/python3.8/distutils/cmd.py",line 313,in run_command
self.distribution.run_command(command)
File "/home/user/anaconda3/envs/dragon/lib/python3.8/distutils/dist.py",in run_command
cmd_obj.run()
File "/home/user/anaconda3/envs/dragon/lib/python3.8/distutils/command/build.py",line 135,in run
self.run_command(cmd_name)
File "/home/user/anaconda3/envs/dragon/lib/python3.8/distutils/cmd.py",in run_command
cmd_obj.run()
File "setup.py",line 41,in run
self.build_extension(ext)
File "setup.py",line 67,in build_extension
subprocess.check_call(['cmake','--build','.'] + build_args,cwd=self.build_temp)
File "/home/user/anaconda3/envs/dragon/lib/python3.8/subprocess.py",line 364,in check_call
raise CalledProcessError(retcode,cmd)
subprocess.CalledProcessError: Command '['cmake','.','--config','Debug','--','-j2']' returned non-zero exit status 2.
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)