好的,我假设-D
前缀意味着#define
,无论其后跟什么变量名,但是我都无法在此makefile功能中找到有关编译器标志的任何文档。CXX=clang -DTHISISPREPROCESSORVARIABLE
因此,make过程中的-DTHISISPREPROCESSORVARIABLE
将定义预处理程序变量THISISPREPROCESSORVARIABLE
,并将后续的cout
编译。
#ifdef THISISPREPROCESSORVARIABLE
std::cout << "this should exist with the -D" << endl;
#endif
这是正确的假设吗?似乎可行,任何人都可以确认此
-D
引用了#define
(任何人都具有一些可以填写所有这些命令定义的makefile文档的链接吗?) 最佳答案
GCC,
MSVC和
Intel都记录了该标志,默认情况下Clang仅使用GCC标志。我刚刚在Clang's help page waaaay at the bottom上找到了它(对于Windows的clang-cl),而harmic更清楚地在Linux上找到了here。
harmic观察到这些是编译器标志,与makefile完全无关,这就是为什么您无法在makefile文档中找到它的原因。这些标志可以放在makefile中,该标志会将它们传递给编译器,但不属于makefile。