8

現在distutilsを介して構築されているboost-python拡張機能を作成しました。

残念ながら、distutils 内で、デバッグ シンボルなしで拡張機能をビルドする方法、またはインストール時に拡張機能からシンボルを削除する方法を見つけることができませんでした。
注: distutils のビルド コマンド (例: python setup.py build) に --debug または -g を渡していません。私のコンパイラは 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"])
      ])
4

3 に答える 3

5

私は方法を見つけましたが、少しハックです:

from distutils import sysconfig
from distutils.core import setup
import platform


if platform.system() != 'Windows':  # When compilinig con visual no -g is added to params
    cflags = sysconfig.get_config_var('CFLAGS')
    opt = sysconfig.get_config_var('OPT')
    sysconfig._config_vars['CFLAGS'] = cflags.replace(' -g ', ' ')
    sysconfig._config_vars['OPT'] = opt.replace(' -g ', ' ')

if platform.system() == 'Linux':  # In macos there seems not to be -g in LDSHARED
    ldshared = sysconfig.get_config_var('LDSHARED')
    sysconfig._config_vars['LDSHARED'] = ldshared.replace(' -g ', ' ')

setup(...)
于 2014-02-05T12:15:23.040 に答える