1

dirA/SConscript で私が持っている:

Import('env')
probeenv = env.Clone()
probeenv['CXXFLAGS'] +=  ['-fno-rtti','-Wnon-virtual-dtor']
... stuff that uses probeenv

私が持っているdirB/SConscriptで

Import('env')
sipenv = env.Clone()
... stuff that uses sipenv

さて、コンパイルされた dirB の c++ ファイルは、dirA から CXXFLAGS を取得します。これは、CCFLAGS では発生しません。probeenv['CXXFLAGS'] = ['-fno-rtti','-Wnon-virtual-dtor']dirAで使用しても発生しません

4

3 に答える 3

1

「メイン」の SConstruct で CXXFLAGS が設定されていない場合、これは scons のバグのようです。回避策は、単純に空のリストに設定することです。

SConscript:

env['CXXFLAGS'] = []
于 2010-04-14T20:54:52.690 に答える
1

さまざまなコンパイラ フラグにデータを追加する専用の方法があります。

probenv.Append(CXXFLAGS = ['-fno-rtti','-Wnon-virtual-dtor'])

AppendUnique と AppendENVPath もあります。説明については、男性を参照してください。

于 2010-02-17T10:13:11.760 に答える
0

これを達成する最良の方法は次のとおりです。

env.Prepend(CXXFLAGS = ['-fno-rtti', '-Wnon-virtual-dtor'])

CXXFLAGSこのように、値が設定されていない場合は自動的に作成されるため、エラーは発生せず、回避策を回避できます。

于 2013-01-17T13:04:08.327 に答える