【发布时间】:2015-04-29 14:16:44
【问题描述】:
我正在尝试创建一个 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);
}
大量的谷歌搜索结果让我尝试了很多东西,但没有一个很奏效。
【问题讨论】:
-
给出
.a文件的完整路径,而不是-lboost_python。