我了解setup.py使用与构建python相同的CFLAGS。我有一个单独的C扩展名是segfaulting。我不需要构建它 , -O2因为-O2正在优化一些值和代码,以使核心文件不足以解决问题。
-O2
我只需要修改setup.py,以便-O2不使用它。
我读过的distutils文件,尤其是distutils.ccompiler和distutils.unixcompiler,看看如何添加标记和库,包括,但不知道如何修改默认的gcc标志。
distutils.ccompiler
distutils.unixcompiler
具体来说,这是针对Python 2.5.1上的旧产品,带有大量反向端口(Fedora 8,是的,我知道…)。不,我无法更改OS或python版本,并且在没有大问题的情况下也无法重新编译python。我只需要为一位环境唯一的客户建立一个C扩展。
CFLAGS="-O0"
setup.py
% CFLAGS="-O0" python ./setup.py
在-O0将被附加到CFLAGS在编译,因此将覆盖以前的-O2设置。
-O0
CFLAGS
另一种方法是添加-O0到extra_compile_args在setup.py:
extra_compile_args
moduleA = Extension('moduleA', ....., include_dirs = ['/usr/include', '/usr/local/include'], extra_compile_args = ["-O0"], )
如果要删除所有默认标志,请使用:
% OPT="" python ./setup.py