连接boost :: python :: numpy时出现问题
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了连接boost :: python :: numpy时出现问题,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2351字,纯文字阅读大概需要4分钟。
内容图文
![连接boost :: python :: numpy时出现问题](/upload/InfoBanner/zyjiaocheng/717/1728157b88504dbcb6b0c8c71b321de0.jpg)
我写了一个小例子来说明发生了什么.
my_test.cpp
#include <iostream>
#include <boost/python/numpy.hpp>
namespace np = boost::python::numpy;
int my_Foo()
{
Py_Initialize();
np::initialize();
std::cout << "hello\n";
return 0;
}
BOOST_PYTHON_MODULE(my_test)
{
using namespace boost::python;
def("my_Foo", my_Foo);
}
py_test.py
import my_test as t
t.my_Foo();
我用命令编译所有:
g++ -shared -fPIC -o my_test.so my_test.cpp -lboost_python -lpython2.7 -I/usr/include/python2.7
我收到这个错误:
ImportError: /home/my_test.so: undefined symbol: _ZN5boost6python5numpy10initializeEb
它在我评论这一行时起作用
//np::initialize();
我不知道如何解决它.我在论坛上看过类似的问题,但没有一个解决方案对我有帮助.我尝试了更新boost,更新python,链接库,在编译期间将生成的模块放在其他模块之前 – 没有任何帮助.我将不胜感激任何帮助.
解决方法:
在仿生
-lboost_python是不够的.你缺少-lboost_numpy.
在Xenial上,您将找不到预构建的库:
sudo apt -y install libpython2.7-dev libboost-python-dev
git clone https://github.com/ndarray/Boost.NumPy
cd Boost.Numpy
mkdir build
cd build
cmake ..
make
sudo make install
用boost / numpy.hpp替换你的代码boost / python / numpy.hpp也用命名空间替换命名空间np = boost :: python :: numpy np = boost :: numpy; |
g++ -o test5.so -fPIC -shared test5.cpp -lboost_python -lboost_numpy -I/usr/local/include -I/usr/include/x86_64-linux-gnu/python2.7/ -I/usr/include/python2.7
enter code here
~> LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib64 ldd test5.so
linux-vdso.so.1 => (0x00007ffe9cd36000)
libboost_python-py27.so.1.58.0 => /usr/lib/x86_64-linux-gnu/libboost_python-py27.so.1.58.0 (0x00007ffba47bd000)
libboost_numpy.so => /usr/local/lib64/libboost_numpy.so (0x00007ffba45a2000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007ffba4216000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007ffba3ffe000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007ffba3c34000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007ffba3a17000)
libpython2.7.so.1.0 => /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0 (0x00007ffba3489000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007ffba3180000)
/lib64/ld-linux-x86-64.so.2 (0x00007ffba4c11000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007ffba2f66000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007ffba2d62000)
libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1 (0x00007ffba2b5f000)
内容总结
以上是互联网集市为您收集整理的连接boost :: python :: numpy时出现问题全部内容,希望文章能够帮你解决连接boost :: python :: numpy时出现问题所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。