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不会发生这种情况。如果我在dirA中使用probeenv['CXXFLAGS'] = ['-fno-rtti','-Wnon-virtual-dtor']
答案 0 :(得分:1)
有专门的方法将数据附加到各种编译器标志:
probenv.Append(CXXFLAGS = ['-fno-rtti','-Wnon-virtual-dtor'])
还有AppendUnique和AppendENVPath。见男人的描述。
答案 1 :(得分:1)
如果没有在“主”SConstruct中设置CXXFLAGS,这似乎是一个scons错误。解决方法是简单地将其设置为空列表。
SConscript:
env['CXXFLAGS'] = []
答案 2 :(得分:0)
实现这一目标的最佳方法是:
env.Prepend(CXXFLAGS = ['-fno-rtti', '-Wnon-virtual-dtor'])
像这样,您不会收到错误并且避免了解决方法,因为未设置CXXFLAGS
值,它会自动创建。