我编写了一个boostpython扩展,目前正在通过distutils构建。在
不幸的是,我无法在distutils中找到一种方法来构建不带调试符号的扩展,或者在安装时从扩展中删除符号。
注意:我没有将--debug或-g传递给distutils的构建命令(例如python设置.py我的编译器是Linux上的gcc。在
示例设置.py公司名称:
from distutils.core import setup
from distutils.extension import Extension
setup(name="myPy",
ext_modules = [
Extension("MyPyExt", ["MyPyExt.cpp"],
libraries = ["boost_python"])
])
可以使用选项^{} 将参数传递给编译器,这些参数是最后附加的,因此具有最高优先级。因此,如果您在
extra_compile_args
中包含-g0
(没有调试符号),这将覆盖Distutils/Setuptools设置的-g
。在您的例子中:另请参见:How may I override the compiler (gcc) flags that setup.py uses by default?
我找到了一个方法,但有点老套:
@hithwen的解决方案与运行在macos10.13.4上的MacPorts安装的python3.5配合得很好。在
但是,
platform.system()
返回'Darwin'
,在我的例子中不是'Linux'。在Ubuntu16.04上,
-g
似乎出现在开头或结尾。 所以稍微调整一下:谢谢你@hithwen!在
相关问题 更多 >
编程相关推荐