首页 文章

静态地提升python构建[关闭]

提问于
浏览
0

我搜索了如何静态构建,但我仍在努力运行这个 . 比如这个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):针对`.rodata.str1.8'重新定位R_X86_64_32可以制作共享对象时不得使用;使用-fPIC /usr/lib/x86_64-linux-gnu/libboost_python.a重新编译:错误添加符号:错误值collect2:错误:ld返回1退出状态

我究竟做错了什么?

1 回答

  • 1

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

相关问题