0

必要に応じて環境CFLAGSを設定する必要があるPythonプログラムを書いています。

サブプロセスモジュールを使用していくつかの操作を実行していますが、これが正しい方法かどうかはわかりません。

スクリプトは最初にCFLAGSを設定し、次にいくつかのコードをコンパイルするため、コードがコンパイルされている間、cflagsはそのままにしておく必要があります。

os.environ['CXXFLAGS']私のシステムにはデフォルトで「」が設定されているものがあることを知っています。だから私の質問は、os.environ['CXXFLAGS']コードをコンパイルする前に値を設定する必要があるのか​​、それとも他の方法で設定する必要があるのか​​ということです。

お知らせ下さい

4

2 に答える 2

1

Python プロセスの環境を変更せずにこれを行うことができます。

# Make a copy of the environment and modify that.
myenv = dict(os.environ)
myenv["CXXFLAGS"] = "-DFOO"

# Pass the modified environment to the subprocess.
subprocess.check_call(["make", "install"], env=myenv)

Python のモジュールのドキュメントをsubprocess参照してください。

于 2009-12-28T20:27:31.490 に答える
0

変更して環境に設定するos.environ['CXXFLAGS']とうまくいくはずです。ただし、extraCXXFLAGSを常に渡す方法./configureは、コマンド ラインで渡すことです。たとえば、次のようになります。

cmd = [
    './configure',
    'CXXFLAGS=-O2 -march=i586 -mtune=i686',
]
subprocess.Popen(cmd)

CXXFLAGSこの方法で行うと、環境に設定したり、明示的に make に渡したりする必要はありません(autotools は、カスタムを含むように Makefile を作成しますCXXFLAGS)。

于 2009-12-28T21:52:59.737 に答える