我正在尝试使用-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软件包,这是我在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我仍然会得到一些未定义的引用。

===============>>#1 票数:0 已采纳

正如您的软件包管理器将向您展示的那样,zlib的库是libz.so ,因此您必须传递-lz

由问题所有者添加:供其他参考,所有需要的链接器选项-lpython2.7 -lm -ldl -lutil -lz -pthread

  ask by user315118 translate from so

未解决问题?本站智能推荐: