【发布时间】:2018-09-19 21:19:25
【问题描述】:
链接以下代码时遇到问题:
#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
任何想法...?
【问题讨论】:
-
Numpy 例程内置在一个单独的库中,例如
libboost_numpy.so。检查它是否真的已经构建,我相信如果它(和开发头文件等)安装在你的 python 环境中,它会自动构建。 -
您知道应该存在哪些标题吗?在我的案例中没有构建 libboost_numpy.so,并且我在 b2 中没有找到任何选项或文档。
标签: python c++ python-3.x numpy boost