我有一个包含多个 .cpp 和 .h 文件的项目。我有一个名为 Globals.h 的文件,它包含在所有 .cpp 文件中。现在在编译这个文件时,我使用了一些 -D 选项。这些选项影响所有文件,而不仅仅是 Globals.h。
在我的 makefile 中,我必须在编译每个文件时使用相同的 -D 选项。当然,当删除这些选项时,会出现一些“未定义”错误。
这意味着每次我更改这些选项之一时,我都必须重新编译整个项目。有没有办法让我只用这些选项编译 Globals.h?
这是我的 makefile 的一部分:创建 Globals.o 的行:
Globals.o : $(GlobalsLib) $(GlobalsInc)
g++ -c -Wall $(CodeDefined) $(UserDefined) $(GlobalsLib) -std=c++0x -o Globals.o
$(GlobalsLib)
and$(GlobalsInc)
是文件的路径,Globals.h
andGlobals.cpp
$(CodeDefined)
是$(UserDefined)
-U 和 -D 选项,此代码用于创建另一个 .o 文件:
NT_FFT_Decomp.o : $(GlobalsLib) $(GlobalsInc) $(NT_DecompLib) $(NT_DecompInc)
g++ -c -Wall $(CodeDefined) $(UserDefined) $(NT_DecompLib) -std=c++0x -o NT_FFT_Decomp.o
(NT_DecompLib) $(NT_DecompInc)
也是文件的路径。请注意,我必须在 g++ 命令中添加相同的选项。反正周围有吗?