未定义对`boost::python::detail::init_模块(PyModuleDef&;,void(*)()和#x27;使用boostpython
我有一个小型cpp计划:未定义对`boost::python::detail::init_模块(PyModuleDef&;,void(*)()和#x27;使用boostpython,python,c++,boost,cmake,boost-python,Python,C++,Boost,Cmake,Boost Python,我有一个小型cpp计划: #include <iostream> #include <boost/python.hpp> //#include <boost/python/numpy.hpp> void helloxd(){ std::cout<<std::endl<<"something"<<std::endl; } BOOST_PYTHON_MODULE(tkbd_cpp) { using names
#include <iostream>
#include <boost/python.hpp>
//#include <boost/python/numpy.hpp>
void helloxd(){
std::cout<<std::endl<<"something"<<std::endl;
}
BOOST_PYTHON_MODULE(tkbd_cpp)
{
using namespace boost::python;
def("helloxd_cpp", helloxd);
}
我可以成功地运行cmake.,但当我尝试运行make命令时,我得到
CMakeFiles/tkbd_cpp.dir/py_wrapper.cpp.o: In function `PyInit_tkbd_cpp':
py_wrapper.cpp:(.text+0xcf): undefined reference to `boost::python::detail::init_module(PyModuleDef&, void (*)())'
CMakeFiles/tkbd_cpp.dir/py_wrapper.cpp.o: In function `boost::python::detail::none()':
py_wrapper.cpp:(.text._ZN5boost6python6detail4none
我尝试过几次用很少的方法重新安装boost,使用--with python=python3.5m参数,用g++手工编译,运行示例,每次我得到未定义的引用。我使用linux,默认的python是python 3.5。我阅读了所有与boostpython-on-stack-overflow相关的答案,其中没有一个对我有所帮助。我还可以尝试什么?@πάνταῥεῖ 我看不出这个问题与链接的问题是如何重复的,没有什么可以帮助我解决这个问题现代人更喜欢用版本指定
python
组件,比如python35
PythonLibs_库
对于PythonLibs
包来说是一个错误的变量名。是PYTHON\u库
。变量CMAKE\u CXX\u FLAGS
对于链接器标志-Wl,…
来说是一个错误的位置。您可以在target\u link\u libraries
call中直接添加这些标志。无论如何,由于有人明确尝试链接适当的库,因此对于一般的“What is undefined reference”(什么是未定义的参考)问题,这个问题不是重复的。
CMakeFiles/tkbd_cpp.dir/py_wrapper.cpp.o: In function `PyInit_tkbd_cpp':
py_wrapper.cpp:(.text+0xcf): undefined reference to `boost::python::detail::init_module(PyModuleDef&, void (*)())'
CMakeFiles/tkbd_cpp.dir/py_wrapper.cpp.o: In function `boost::python::detail::none()':
py_wrapper.cpp:(.text._ZN5boost6python6detail4none