libpython2.7.a 缺少许多引用
我正在尝试用 -static
编译一个 cython
模块,但遇到了很多关于 libpython2.7.a
的缺失引用错误。例如:
/usr/lib/x86_64-linux-gnu/libpython2.7.a(complexobject.o): In function `_Py_c_pow':
(.text.unlikely+0x507): undefined reference to `pow'
我已经安装了 build-essential
这个包,这是我在网上找到的一个解决方案。
我的工作流程是:
cython --embed hi.py
gcc hi.c -lpython2.7 -I /usr/include/python2.7 -static
我缺少什么才能静态链接这个文件呢?
编辑:我添加了额外的链接选项
gcc hi.c -lpython2.7 -lm -pthread -lzlib -I /usr/include/python2.7 -static
所有未定义函数的引用都消失了,但链接器(ld)说找不到 lzlib,所以编译仍然失败。如果不加 -lzlib
,我仍然会遇到一些未定义的引用。
1 个回答
0
你的软件包管理器会告诉你,zlib这个库的名字是 libz.so
,所以你在编译的时候需要加上 -lz
这个选项。
提问者补充:为了方便其他人参考,所有需要的链接选项是 -lpython2.7 -lm -ldl -lutil -lz -pthread