gpt4 book ai didi

c++ - 什么是 -D 编译器标志 C++(clang、GNU、MSVC)

转载 作者:搜寻专家 更新时间:2023-10-31 01:02:58 25 4
gpt4 key购买 nike

好吧,我假设 -D 前缀表示 #define 后跟任何变量名,但是我找不到关于编译器标志的此 makefile 功能的任何文档.

CXX=clang -DTHISISPREPROCESSORVARIABLE

所以 -DTHISISPREPROCESSORVARIABLE 在 make 过程中将定义预处理器变量 THISISPREPROCESSORVARIABLE 并使后续的 cout 编译。

#ifdef THISISPREPROCESSORVARIABLE
std::cout << "this should exist with the -D" << endl;
#endif

这是正确的假设吗?它似乎有效,任何人都可以确认此 -D 指的是 #define (任何人都可以链接到一些可以填写所有这些命令定义的 makefile 文档?)

最佳答案

GCC , MSVC , 和 Intel , 都记录了这个标志,而 Clang 默认只使用 GCcflags。我刚在 Clang's help page waaaay at the bottom 上找到它(对于 Windows 的 clang-cl)和 harmic发现比较清楚了here适用于 Linux。

Execute clang-cl /? to see a list of supported options:
/D <macro[=value]> Define macro

harmic观察到这些是编译器 标志,与 makefile 毫无关系,这就是为什么您在 makefile 文档中找不到它的原因。这些标志可以放在 makefile 中,该 makefile 会将它们传递给编译器,但不是 makefile 的一部分。

关于c++ - 什么是 -D 编译器标志 C++(clang、GNU、MSVC),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26226874/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com