Way*_*ker 50 python gcc setup.py
我知道setup.py使用与构建python相同的CFLAGS.我有一个我们的C扩展,即segfaulting.我需要构建它而不是 -O2
因为-O2
优化了一些值和代码,因此核心文件不足以解决问题.
我只需要修改setup.py,这样-O2
就不用了.
我读过的distutils文件,尤其是distutils.ccompiler
和distutils.unixcompiler
,看看如何添加标记和库,包括,但不知道如何修改默认的gcc标志.
具体来说,这是针对Python 2.5.1上的遗留产品,带有一堆反向端口(Fedora 8,是的,我知道......).不,我无法更改操作系统或python版本,我不能,没有很大的问题,重新编译python.我只需要为一个客户构建一个C扩展,其中一个客户的环境是唯一的一个segfaulting.
cls*_*ung 68
CFLAGS="-O0"
运行之前的前置setup.py
:
% CFLAGS="-O0" python ./setup.py
Run Code Online (Sandbox Code Playgroud)
在-O0
将被附加到CFLAGS
在编译,因此将覆盖以前的-O2
设置.
另一种方法是添加-O0
到extra_compile_args
在setup.py
:
moduleA = Extension('moduleA', .....,
include_dirs = ['/usr/include', '/usr/local/include'],
extra_compile_args = ["-O0"],
)
Run Code Online (Sandbox Code Playgroud)如果要删除所有默认标志,请使用:
% OPT="" python ./setup.py
Run Code Online (Sandbox Code Playgroud)当我需要完全删除标志(-pipe)以便我可以在低内存系统上编译 SciPy 时,我遇到了这个问题。我发现,作为一种 hack,我可以通过编辑 /usr/lib/pythonN.N/_sysconfigdata.py 来删除不需要的标志,以删除该标志的每个实例,其中 NN 是你的 Python 版本。有很多重复项,我不确定 setup.py 实际使用了哪些。
归档时间: |
|
查看次数: |
26496 次 |
最近记录: |