静态链接与boost python

时间:2015-04-29 14:16:45

标签: 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);
}

很多谷歌的搜索结果给了我很多东西可以尝试,但没有任何有用的东西。

1 个答案:

答案 0 :(得分:1)

也许放一个

#define BOOST_PYTHON_STATIC_LIB
您源文件顶部的

会有所帮助吗?

link