我有非系统标头,我用它来通过SCons编译程序。问题是它们有时会改变,但SCons似乎根本不会扫描标题中的变化。 有没有办法告诉SCons扫描标题的变化?
答案 0 :(得分:5)
假设您正在讨论c / c ++,SCons应该始终扫描头文件,假设包含路径已正确设置为这样做。
如果使用CPPPATH
构造变量指定了包含路径,则将扫描该路径中的包含文件以进行更改。使用此变量指定的包含路径不应该前置-I
,因为SCons将以可移植的方式执行此操作。
此变量可以附加到如下:
env = Environment()
# These paths WILL BE scanned for header file changes
env.Append(CPPPATH = ['path1', '/another/path', 'path3'])
如果已在CCFLAGS
或CXXFLAGS
构造变量中指定了包含路径,则该路径中的包含文件将 不 为扫描变化。其中一个变量中指定的包含路径必须 -I
前置。当指定系统头包含很可能永远不会改变的路径时,这种方法很有用,从而加快了构建过程。
路径可以附加到CXXFLAGS变量:
env = Environment()
# These paths will NOT be scanned for header file changes
env.Append(CXXFLAGS = ['-Ipath1', '-I/another/path', '-Ipath3'])
Here是其余SCons构造变量的列表。