boost_python hello 示例不起作用

Posted

技术标签:

【中文标题】boost_python hello 示例不起作用【英文标题】:boost_python hello example not working 【发布时间】:2015-01-30 14:13:51 【问题描述】:

我正在尝试让 boost python 工作的 hello world 示例。我正在使用OSXboost 1.55python 2.7

这是我的hello.cpp

#include <boost/python/module.hpp>
#include <boost/python/def.hpp>

char const* greet()

   return "hello, world";


BOOST_PYTHON_MODULE(hello_ext)

    using namespace boost::python;
    def("greet", greet);

我用以下两行编译它:

g++ -fPIC -I/usr/include/python2.7/ -I/usr/local/include/ -c hello.cpp
g++ -shared -Wl, -o hello.so hello.o -L/usr/lib -L/usr/local/lib -lpython2.7 -lboost_python

当我尝试通过 import hello.so 将其导入 python 时,我收到以下错误:

ImportError: dynamic module does not define init function (inithello)

有什么想法吗?

【问题讨论】:

【参考方案1】:

原来BOOST_PYTHON_MODULE 中的名称必须与库的名称匹配,所以我将链接步骤更改为

g++ -shared -Wl, -o hello_ext.so hello.o -L/usr/lib -L/usr/local/lib -lpython2.7 -lboost_python

【讨论】:

以上是关于boost_python hello 示例不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Chibi Scheme - 简单的定义库示例不起作用

XMPP - 示例第 3 章“使用 JavaScript 和 jQuery 进行专业 XMPP 编程”不起作用

为啥 str != "hello" && "goodbye" 不起作用?

来自 cython wiki 的 Hello World 不起作用

安装相同版本的pyenv和boost_python

将 ubuntu 18.04 升级到 20.04 后,简单的 hello world snap 不起作用