我明白那个setup.py
使用相同的CFLAGS
用于构建 Python。我有一个我们的 C 扩展存在段错误。我需要构建它without -O2
因为-O2
正在优化一些值和代码,以便核心文件不足以确定问题。
我只需要修改setup.py
以便-O2
未使用。
我读了distutils
文档,特别是distutils.ccompiler
and distutils.unixccompiler
并了解如何添加标志、库和包含,但不了解如何修改默认 GCC 标志。
具体来说,这是针对 Python 2.5.1 上具有大量向后移植的遗留产品(Fedora 8,是的,我知道......)。不,我无法更改操作系统或 Python 版本,并且无法重新编译 Python(除非出现很大问题)。我只需要为一位客户构建一个一次性的 C 扩展,该客户的环境是唯一出现段错误的。
-
Prepend CFLAGS="-O0"
在你跑步之前setup.py
:
% CFLAGS="-O0" python ./setup.py
The -O0
将被附加到CFLAGS
编译时,因此将覆盖先前的-O2
环境。
-
另一种方法是添加-O0
to extra_compile_args
in setup.py
:
moduleA = Extension('moduleA', .....,
include_dirs = ['/usr/include', '/usr/local/include'],
extra_compile_args = ["-O0"],
)
-
如果要删除所有默认标志,请使用:
% OPT="" python ./setup.py
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)