linux无法加载符号,无法加载Boost.Python模块未定义符号

我有一个用C编写的库,需要从Python访问,所以我使用Boost.Python. 我可以将我的库编译成Boost.so文件,但当我尝试将其加载到Python中时(使用import tropmodboost),我得到以下错误:ImportError: ./tropmodboost.so: undefined symbol: _Z12simplex_freeP7simplex

我found指出这是一个common错误,通常可以通过在我的g++链接器调用中对-l指令进行重新排序来修复,但据我所知,我已经可以确定了。在

以下是我在Ubuntu上运行的Makefile的文本:

^{pr2}$

调用ldd tropmodboost.so输出:linux-vdso.so.1 => (0x00007ffff79a3000)

libpython2.7.so.1.0 => /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0 (0x00007f34ea732000)

libboost_python-py27.so.1.58.0 => /usr/lib/x86_64-linux-gnu/libboost_python-py27.so.1.58.0 (0x00007f34ea4e6000)

libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f34ea163000)

libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f34e9f4d000)

libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f34e9b84000)

libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f34e9966000)

libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f34e974c000)

libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f34e9548000)

libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1 (0x00007f34e9344000)

libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f34e903b000)

/lib64/ld-linux-x86-64.so.2 (0x0000561fcfee3000)

下面是一个来自.hpp文件的except显示了Boost包装器代码本身:#include

#include

#include

#include

#include

[...]

BOOST_PYTHON_MODULE(tropmodboost) {

using namespace boost::python;

class_("ConfigSpace", init())

.def("destroy", &ConfigSpace::destroy)

.def("getTraceOfPerm", &ConfigSpace::getTraceOfPerm)

;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值