我正在尝试使用cython
编译-static
模块,但是我在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
,这是我在Google上找到的一种解决方案。
我的工作流程是:
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
我仍然会得到一些未定义的引用。
答案 0 :(得分:0)
当您的包管理器向您显示时,zlib的库为libz.so
,因此您必须通过-lz
。
问题所有者添加:
对于其他人的参考,所有链接器选项都需要-lpython2.7 -lm -ldl -lutil -lz -pthread