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

有专门的方法可以将数据附加到各种编译器标志:

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

还有 AppendUnique 和 AppendENVPath。看男人的描述。

于 2010-02-17T10:13:11.760 回答
1

如果 CXXFLAGS 未在“main”SConstruct 中设置,这似乎是一个 scons 错误。解决方法是简单地将其设置为一个空列表。

征兵:

env['CXXFLAGS'] = []
于 2010-04-14T20:54:52.690 回答
0

实现这一目标的最佳方法是:

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

像这样,您不会收到错误并且避免了解决方法,因为如果CXXFLAGS未设置该值,则会自动创建它。

于 2013-01-17T13:04:08.327 回答