【问题标题】:boost python build statically [closed]静态提升python构建[关闭]
【发布时间】:2018-06-18 10:56:17
【问题描述】:

我搜索了如何静态构建,但我仍然在努力运行它。比如这个Static linking with boost python,我就出错了

/python_boost$ g++ -o hello.o -c hello.cpp -Wall -fPIC -I/usr/include/python2.7 /python_boost$ g++ -shared -o libhello.so hello.o -lpython2.7 /usr/lib/x86_64-linux-gnu/libboost_python.a /usr/bin/ld: /usr/lib/x86_64-linux-gnu/libboost_python.a(from_python.o): 重定位 R_X86_64_32 对 `.rodata.str1.8' 制作时不能使用 共享对象;使用 -fPIC 重新编译 /usr/lib/x86_64-linux-gnu/libboost_python.a:添加符号时出错:错误 value collect2: error: ld 返回 1 个退出状态

我做错了什么?

【问题讨论】:

  • 你的问题不清楚
  • 对不起。我的问题是静态构建的方法是什么,以便我可以在我的 python 程序中加载 libhello.so。我尝试了各种方式来构建和链接它,但没有运气。谢谢。

标签: c++ boost-python


【解决方案1】:

旨在链接到共享库的目标文件必须编译为与位置无关的代码。使用 gccclang 需要 -fPIC 编译器命令行选项。静态.a 库通常在没有该选项的情况下编译,这就是您观察到此链接器错误的原因。详情请见How to compile static library with -fPIC from boost.python

【讨论】:

  • 谢谢!它 。完美运行。!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-07-22
  • 1970-01-01
  • 2011-01-20
  • 2012-04-25
  • 1970-01-01
  • 2021-12-17
  • 1970-01-01
相关资源
最近更新 更多