Boost Python Numpy - 要初始化的未定义引用

Boost Python Numpy - Undefined reference to initialize

本文关键字:未定义 引用 初始化 Python Numpy Boost      更新时间:2023-10-16

我在链接以下代码时遇到问题:

#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

故事结束!