编译python模块扩展时如何静态链接库?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (258)

我想修改一个setup.py文件,以便命令“pythonsetup.py构建”编译一个静态(而不是动态)链接到库的基于C的扩展模块。

pythonsetup.py:

gcc -pthread -shared -L/system/lib64 -L/system/lib/ -I/system/include build/temp.linux-x86_64-2.7/src/*.o -L/system/lib -L/usr/local/lib -L/usr/lib -ligraph -o build/lib.linux-x86_64-2.7/igraph/core.so

这是我的手工修改:

gcc -pthread -shared -L/system/lib64 -L/system/lib/ -I/system/include build/temp.linux-x86_64-2.7/src/*.o -L/system/lib -L/usr/local/lib -L/usr/lib /system/lib/libigraph.a -lxml2 -lz -lgmp -lstdc++ -lm -ldl -o build/lib.linux-x86_64-2.7/igraph/core.so

第2.3.4节分发Python模块讨论库的规范,但只讨论“库”。[医]DIRs“是适当的,这些库是动态链接的。

我正在使用Linux环境进行开发,但是这个包也将在Windows上编译和安装,所以我想要的是一个可移植的解决方案。

有人能告诉我在哪里寻找指令,或者如何修改setup.py脚本吗?

提问于
用户回答回答于
用户回答回答于
g++ -Wl,-Bstatic -lfoo -Wl,-Bdynamic -lbar -Wl,--as-needed

扫码关注云+社区

领取腾讯云代金券