我能够成功编译并链接我的程序,但运行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)
目前没有回答
相关问题 更多 >
编程相关推荐