Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 当我';我正在创建一个共享库垫片,而不是一个可执行文件?_Python_C_Swig - Fatal编程技术网

Python 当我';我正在创建一个共享库垫片,而不是一个可执行文件?

Python 当我';我正在创建一个共享库垫片,而不是一个可执行文件?,python,c,swig,Python,C,Swig,我是内部Python系统的新维护者,该系统通过使用swig和setup.py脚本组合创建的共享库垫片使用一组第三方共享C库。直到最近,这种方法一直运作良好 第三方共享C库已针对新功能进行了更新,现在我在尝试运行我们的主Python程序(导入生成的共享库)时,在一个干净的构建之后,出现了以下运行时错误: -sh-3.00$python ams.py ImportError: /usr/lib/libz4lnx.so: undefined symbol: stat 我发现了1999年的一个讨论线程

我是内部Python系统的新维护者,该系统通过使用swig和setup.py脚本组合创建的共享库垫片使用一组第三方共享C库。直到最近,这种方法一直运作良好

第三方共享C库已针对新功能进行了更新,现在我在尝试运行我们的主Python程序(导入生成的共享库)时,在一个干净的构建之后,出现了以下运行时错误:

-sh-3.00$python ams.py

ImportError: /usr/lib/libz4lnx.so: undefined symbol: stat
我发现了1999年的一个讨论线程,它解释了问题是stat不存在于libc.so.6中,而是存在于libc_nonshared.a中,并提供了一个解决方案:通过在构建命令行中添加-lc来链接c库

http://www.redhat.com/archives/pam-list/1999-February/msg00082.html
我已将“c”添加到setup.py脚本中的库列表中,但这不会更改我的结果。我怀疑这是因为我正在创建一个共享库垫片,而不是一个可执行文件

考虑到我的构建环境,如何满足第三方共享库对stat的引用

我的构建系统是:

-sh-3.00$lsb_发布-a

LSB Version:    :core-3.0-ia32:core-3.0-noarch:graphics-3.0-ia32:graphics-3.0-noarch
Distributor ID: CentOS
Description:    CentOS release 4.6 (Final)
Release:        4.6
Codename:       Final
我的gcc版本是:

-sh-3.00$gcc——版本

我的Python版本是:

-sh-3.00$python-V

Python 2.3.4

解决方案是创建一个新的Centos 5.3虚拟机,并根据需要重新构建和/或重新安装组件。

事实证明,从长远来看,迁移到Centos 5.3可能是一件好事,但实际问题是libz4lnx构建在我最初使用的DVD上的方式。在迁移到Centos 5.3的过程中,我还迁移到了更新版本的libz4lnx库。今天,在测试其他东西时,我使用了原始DVD中的库,在运行Python程序时得到了完全相同的未定义符号错误。切换回最新的DVD(大约更新两个月)再次解决了这个问题。

也许可以在pastoverflow.com上询问:在setup.py中,将“c”添加到库列表中实际上有什么作用?在构建垫片库时,查看原始链接器命令会很有用。它在build命令中显示为“-lc”。
Python 2.3.4