我在链接以下代码时遇到问题:
#include <boost/python.hpp>
#include <boost/python/numpy.hpp>
BOOST_PYTHON_MODULE (MyLibrary)
{
Py_Initialize() ;
boost::python::numpy::initialize() ;
...
}
返回:
undefined reference to `boost::python::numpy::initialize(bool)'
我正在使用Boost 1.68和Python 3.6,编译如下:
./bootstrap.sh --with-python=/usr/bin/python3 --with-python-version=3.6 --with-python-root=/usr/lib/python3.6
./b2 --with-python link=shared install
我正在使用以下方法进行链接:
/usr/bin/c++ -shared
-o MyLibrary.so
MyLibrary.cpp.o
-L/usr/local/lib
-lpython3.6m
/usr/local/lib/libboost_python36.so
知道吗...?
解决方案是先安装python3-numpy
包, 否则不会生成libboost_numpy.so
。
故事结束!