python - 与boost python的静态链接

标签 python c++ boost g++

我正在尝试创建一个 boost python 扩展,但更愿意静态链接 boost python 库。否则,您需要在使用 python 模块的每台机器上安装完全相同版本的 boost。不过我没有使用 bjam。

这适用于 linux (ubuntu) 但会导致动态链接:

g++ -o python_example.o -c python_example.cpp -Wall -fPIC -I/usr/include/python2.7
g++ -shared -o python_example.so python_example.o -lpython2.7 -lboost_python -lboost_system

python_example.cpp 只是基本的示例代码:

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

char const* greet()
{
   return "hello, world";
}

BOOST_PYTHON_MODULE(python_example)
{
    using namespace boost::python;
    def("greet", greet);
}

有很多谷歌搜索结果让我尝试了很多东西,但没有一个很管用。

最佳答案

也许放一个

#define BOOST_PYTHON_STATIC_LIB

在源文件的顶部会有帮助吗?

https://stackoverflow.com/a/35440164/9358910

关于python - 与boost python的静态链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29946400/

相关文章:

python boto3 put_item 在使用本地 dynamodb 容器时失败

c++ - dllexport'ing 静态模板方法

c++ - linux 到 windows C++ 字节数组

c++ - 将 boost IOStreams 与 std::ostream_iterator 结合使用

python - 由于德语变音,Python 中的字符串不相等

python - 如何更改此代码以输出颜色取决于高度的直方图,而不是我选择的默认 'cool'

python - 异常值处理部分零值过多怎么办?

c++ - open() 的参数 : Everyone should have all access to file & should be truncated on creation

boost - caffe 找不到 libboost_system.so.166.0

c++ - boost::iostream zlib 将多个文件压缩到一个存档中