好的,我假设-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。

09-06 00:32
查看更多