4

SCons を介してプログラムをコンパイルするために使用する非システム ヘッダーがあります。問題は、ヘッダーが時々変更されることですが、SCons はヘッダーの変更をまったくスキャンしていないようです。ヘッダーの変更をスキャンするよう SCons に指示する方法はありますか?

4

1 に答える 1

5

c/c++ について話していると仮定すると、インクルード パスが正しく設定されていると仮定すると、SCons は常にヘッダー ファイルをスキャンする必要があります。

CPPPATHインクルード パスが構成変数で指定されている場合、そのパス内のインクルード ファイルの変更がスキャンされます。この変数で指定されたインクルード パスは、SCons が移植可能な方法で行うため、先頭にを付けるべきではありません。-I

この変数は、次のように追加できます。

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'])

以下は、残りの SCons 構築変数のリストです。

于 2012-09-10T19:44:57.510 に答える