我正在尝试使用-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

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

1回复

链接器抱怨缺少-fPIC

我试图交叉编译冻结的Cython程序以在RPi上使用。 链接产生(针对Python库的许多对象) 链接器应创建一个可执行文件(而不是共享对象)。 为什么? 编译(我的模块): 链接: 版本: Python 3.7.0(来自带有默认构建的python
1回复

iOS 6:libpython2.7.a初始化导入错误

坚持在iOS上初始化嵌入式Python。 我从Kivy项目中获取了构建脚本。 它产生了libpython2.7.a,Python27.zip和包含。 所以,我的应用程序将zip解压缩到/Documents/lib/python2.7 试图设置Python: 适逢:
1回复

cython - distutils vs cmake:链接libpython?

我曾经问过另一个问题,这个问题对于直接答案来说有点过于复杂,所以我把它归结为这个基本问题...... 当我使用标准的cython distutils构建我的aModule.so ,它似乎与libpython没有关联: 但是当我使用cmake设置构建时,它会不断生成链接命令,将lib
1回复

将“ libpython2.7.a”版本从2.7.5更改为2.7.6,以安装opencv 2.4.9

我正在尝试在'ubuntu 16.04 amd64'上安装opencv。 由于python版本,我在89%的编译时出现错误。 在我看来,这就是问题所在。 我尝试过的方法:我在所有软件包上都做了dpkg -s。 除了libpython-dev,其他所有软件包都是2.7.6,我卸载
1回复

在shm_open上的C ++ Boost库未定义参考:命令行缺少DSO

我正在编写一个在DDS系统中扮演订户角色的应用程序。 该订户将在接收到数据后将值写入共享内存位置,以便其他GUI应用程序可以读取它们。 我已经编写了该应用程序的一个版本,该版本可以在Windows上编译并运行A-OK,但是现在我面临着创建要在Ubuntu上运行的版本的问题。 作为Win
2回复

构建Cython-HIDapi Python 2.7

在Windows的虚拟机中构建Cython时遇到了很多问题。 我在OS X中没有任何问题,这真的开始让我感到沮丧... >>setup.py clean install 我在计算机上找不到任何名为“ iconv.h”的标头。 如果VC ++ 2013中未包含此功能,
1回复

Cython:通过参考传递

问题 我想通过引用Cython中的函数传递一个向量。 cdef extern from "MyClass.h" namespace "MyClass": void MyClass_doStuff "MyClass::doStuff"(vector[double]& inp
1回复

Cython中的参考文献

我在Cython中尝试使用引用时遇到了一些麻烦。 我正在使用此代码创建一个int并对其进行引用。 但是,我无法弄清楚如何通过integer_ref更改i的值。 在C中,我只使用integer_ref = some_other_value ,这会将i的值设置为some_other_va
2回复

适用于Python 2.7的Visual Microsoft Visual C ++编译器与MinGW

我正在用C编写一些函数,这些函数将通过Cython从Python调用。 我正在使用MinGW C ++编译器在Code:Block中开发这些功能。 但是,当为Python构建它们时,我必须为Python 2使用Visual Microsoft Visual C ++编译器。然后我遇到了一个严
1回复

Python 2.7和Cython:未定义全局名称col2im_6d_cython

我在Ubuntu 16.04上遇到python 2.7和Cython的问题。 我正在尝试从cs231n课程(卷积神经网络)运行代码。 但是唯一的函数col2im_6d_cython不起作用。 错误是: 函数col2im_6d_cython在im2col_cython.pyx定义: