python - 设置用于在 Python 包中链接 C 代码的默认编译器

标签 python compiler-construction

我正在尝试编译一个包含一些 Cython 生成的 C 代码的 Python 包,我遇到了:

gcc: error: x86_64: No such file or directory

这表明 gcc 编译器太新了,所以不再支持 -arch。我尝试在 python setup.py install 之前设置 CC=/usr/bin/gcc,这适用于主编译命令,但不适用于创建共享对象库:

% setenv CC /usr/bin/gcc
% python setup.py install
running install
running build
running build_py
running build_ext
skipping 'hyperion/util/integrate_core.c' Cython extension (up-to-date)
building 'hyperion.util.integrate_core' extension
/usr/bin/gcc -fno-strict-aliasing -fno-common -dynamic -arch x86_64 -isysroot /Developer/SDKs/MacOSX10.5.sdk -DNDEBUG -g -O3 -arch x86_64 -isysroot /Developer/SDKs/MacOSX10.5.sdk -I/Library/Frameworks/EPD64.framework/Versions/7.2/lib/python2.7/site-packages/numpy/core/include -I/Library/Frameworks/EPD64.framework/Versions/7.2/include/python2.7 -c hyperion/util/integrate_core.c -o build/temp.macosx-10.5-x86_64-2.7/hyperion/util/integrate_core.o
gcc -bundle -undefined dynamic_lookup -g -arch x86_64 -arch x86_64 build/temp.macosx-10.5-x86_64-2.7/hyperion/util/integrate_core.o -o build/lib.macosx-10.5-x86_64-2.7/hyperion/util/integrate_core.so

gcc: error: x86_64: No such file or directory
gcc: error: x86_64: No such file or directory
gcc: error: unrecognized option ‘-arch’
gcc: error: unrecognized option ‘-arch’
error: command 'gcc' failed with exit status 1

有没有办法指定用于链接的编译器的绝对路径?

最佳答案

使用 LDSHARED 变量:LDSHARED='/usr/bin/gcc -shared'

它埋在sysconfig 模块中。试试这个:

>>> from sysconfig import get_config_vars
>>> get_config_vars('CC', 'CXX', 'LDSHARED')

关于python - 设置用于在 Python 包中链接 C 代码的默认编译器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10485257/

相关文章:

assembly - 目标代码与机器代码

python - 使用python从excel文件中删除多余的逗号

python - Pandas 不会将分类数据 [性别] 更改为数值 [0/1]

python - Keras Dense 层和 Pytorch 的 nn.线性层有区别吗?

c# - 向 .NET 应用程序添加脚本功能

c++ - 数组声明和寻址

java - 编译并升级到JDK 1.7

python - 尝试连接到本地主机时出现涉及 CSRF 的 403 错误(python 请求)

python - 将符号转换为 HTML 实体

c++ - 在 Xcode 5 中找不到 glm/glm.hpp 文件