从C:./a.out:/lib/libgcc_.so.1调用Python:找不到版本'GCC_7.0.0'(由./a.out必需)

2024-09-29 23:18:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我能够成功编译并链接我的程序,但运行a.out文件会导致:

./a.out: /lib/libgcc_s.so.1: version `GCC_7.0.0' not found (required by ./a.out)

ls /lib | grep libgcc的输出是:

libgcc_s-4.8.5-20150702.so.1
libgcc_s.so.1

我的GCC版本是4.8.5。我是否缺少一些步骤来强制它使用libgcc_-s-4.8.5-20150702.so.1

我能够编译和运行用python setup.py install构建的Python C扩展,因此我知道我的GCC版本应该能够做到这一点。然而,现在我正试图构建一个可以运行Python的C应用程序,这会导致这个错误


我有一个简单的文件,c.c

#include <Python.h>
#include <stdio.h>
int main(void)
{
    Py_Initialize();
    printf("hello\n");
    return 1;
}

~/apps/miniconda3/bin/python3 config--cflags会产生以下结果:

-I/apps/miniconda3/include/python3.7m -I/apps/miniconda3/include/python3.7m  -Wno-unused-result -Wsign-compare -march=prescott -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O3 -pipe  -fdebug-prefix-map==/usr/local/src/conda/- -fdebug-prefix-map==/usr/local/src/conda-prefix -fuse-linker-plugin -ffat-lto-objects -flto-partition=none -flto -flto -fuse-linker-plugin -ffat-lto-objects -flto-partition=none -g -DNDEBUG -fwrapv -O3 -Wall

~/apps/miniconda3/bin/python3 config--ldflags会产生以下结果:

-L/apps/miniconda3/lib/python3.7/config-3.7m-i386-linux-gnu -L/apps/miniconda3/lib -lpython3.7m -lpthread -ldl  -lutil -lrt -lm  -Xlinker -export-dynamic

我是这样编译的:

gcc -c $(~/apps/miniconda3/bin/python3-config --cflags) -m32 c.c

我是这样链接的:

gcc c.o $(~/apps/miniconda3/bin/python3-config --ldflags) -m32

这两个命令工作时都没有错误或警告,并生成a.out可执行文件

但是,运行此可执行文件会显示错误消息:

./a.out: /lib/libgcc_s.so.1: version `GCC_7.0.0' not found (required by ./a.out)

Tags: apps文件configprefixbininclude链接lib

热门问题