【发布时间】:2012-10-20 01:06:47
【问题描述】:
我编写了一个 boost-python 扩展,目前正在通过 distutils 构建。
不幸的是,我无法在 distutils 中找到一种方法来构建没有调试符号的扩展,或者在安装时从扩展中删除符号。
注意:我没有通过 --debug 或 -g 来构建 distutils 的命令(例如,python setup.py build),我的编译器是 Linux 上的 gcc。
setup.py 示例:
from distutils.core import setup
from distutils.extension import Extension
setup(name="myPy",
ext_modules = [
Extension("MyPyExt", ["MyPyExt.cpp"],
libraries = ["boost_python"])
])
【问题讨论】:
-
您可以将
extra_link_args=['-Wl,--strip-all']添加到Extension。不可移植,而且奇怪的是,Windows 上的 MinGW64 默认会剥离生成的模块,但 Linux 上的 gcc 不会。 -
哎呀,对不起,MinGW默认也不包含它,它只在我的
setup.py中指定。 -
好的。我会试试看。周末我浏览了一些 distutils 包,但我无法确定默认的地方。从我所看到的一切来看,它看起来不应该是这样。
-
默认的是在调用 gcc 时使用 '-g' 来构建调试,而无需我将 --debug 或 -g 传递给 'python setup.py build/install'。跨度>