Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/58.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
从C:./a.out:/lib/libgcc_.so.1调用Python:version`GCC_7.0.0';未找到(由./a.out所需)_Python_C_Python 3.x_Python C Api - Fatal编程技术网

从C:./a.out:/lib/libgcc_.so.1调用Python:version`GCC_7.0.0';未找到(由./a.out所需)

从C:./a.out:/lib/libgcc_.so.1调用Python:version`GCC_7.0.0';未找到(由./a.out所需),python,c,python-3.x,python-c-api,Python,C,Python 3.x,Python C Api,我能够成功编译并链接我的程序,但运行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 我能够编译和运行使

我能够成功编译并链接我的程序,但运行
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--ldflags会产生以下结果:

-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
-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)

我只是猜测一下:miniconda是否附带了
libgcc_.so
?@jordanm在miniconda3/lib目录中我看到了
libgcc_.so
libgcc_.so.1
。同样地,在miniconda3/pkgs/目录中,我看到了一些类似于
libgcc-ng-8.2.0-h9268252_1/lib/libgcc_s。因此,如果在运行a.out时将
LD_LIBRARY_PATH
设置为miniconda3/lib目录,那么a.out是否有效?@MatthewMoisen在使用GCC编译时可以使用“rpath”参数来设置特定于程序的路径“特定于运行时库的搜索路径”。请尝试使用谷歌搜索一些示例。请注意,“rpath”实际上是一个通过GCC传递的链接器选项。@MatthewMoisen这正是您想要的,是的。