【问题标题】:Boost Python Numpy - Undefined reference to initializeBoost Python Numpy - 未定义的初始化引用
【发布时间】: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


【解决方案1】:

解决方案是先安装python3-numpy 包, 否则不会生成libboost_numpy.so

故事结束!

【讨论】:

  • 你是传奇人物卢卡斯,很有帮助
猜你喜欢
  • 1970-01-01
  • 2021-03-24
  • 2019-01-09
  • 1970-01-01
  • 2021-11-11
  • 2020-12-14
  • 1970-01-01
  • 2020-09-11
  • 2014-03-18
相关资源
最近更新 更多