【问题标题】:Static linking with boost python使用 boost python 的静态链接
【发布时间】: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

标签: python c++ boost g++


【解决方案1】:

也许放一个

#define BOOST_PYTHON_STATIC_LIB

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

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

【讨论】:

  • 请改进你的答案。
  • 你能指定改进的方法吗?
  • 你的答案就像一个你不确定结果的问题。
  • 嘿兄弟,我是问这个问题的主人来试试这个方法。我只是要求反馈,因为这是一个简单的解决方案:D
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-21
  • 2012-09-18
  • 1970-01-01
  • 2011-03-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多