2024-09-27 18:22:53 发布
网友
默认情况下,libboostpython.a编译时不使用-fPIC。但是我必须做一个python扩展,它是一个带有-fPIC链接到静态库的动态库。 如何使用boost.python中的-fPIC编译静态库(libboostpython.a)?
libboostpython.a
-fPIC
boost.python
您可以使用两个选项:
bjam ... cxxflags='-fPIC'
'-Wl,-rpath,$ORIGIN'
$ORIGIN
注意,如果您已经运行了bjam,那么首先需要清除目标 应用-d+2也有助于打印命令:
./bjam clean && ./bjam -d+2 link=static cxxflags="-fPIC" install
您可以使用两个选项:
bjam ... cxxflags='-fPIC'
。这将把每个boost源文件编译为独立于位置的代码。'-Wl,-rpath,$ORIGIN'
标志链接可执行文件,以便当动态链接器搜索可执行文件所需的共享库时,它在可执行文件所在的目录中查找这些库。有关$ORIGIN
的详细信息,请参见man ld.so。注意,如果您已经运行了bjam,那么首先需要清除目标 应用-d+2也有助于打印命令:
相关问题 更多 >
编程相关推荐