【发布时间】:2020-08-31 17:12:22
【问题描述】:
我想知道C++编译的-DLOCAL标志是做什么的?
用作:
g++ -std=c++17 -Wshadow -Wall -o "%e" "%f" -g -fsanitize=address -fsanitize=undefined -D_GLIBCXX_DEBUG -DLOCAL
提前致谢。
【问题讨论】:
标签: c++ compilation g++ local compiler-flags
我想知道C++编译的-DLOCAL标志是做什么的?
用作:
g++ -std=c++17 -Wshadow -Wall -o "%e" "%f" -g -fsanitize=address -fsanitize=undefined -D_GLIBCXX_DEBUG -DLOCAL
提前致谢。
【问题讨论】:
标签: c++ compilation g++ local compiler-flags
-D 命令行参数定义预处理器宏。 -DLOCAL 定义了宏 LOCAL,值为 1。这个宏在 C++ 语言中没有特殊含义,对于 GCC 编译器也没有特殊含义。
【讨论】:
我发现使用-DLOCAL 标志编译的一个用途允许我们运行类似cerr 的语句,用于测试
cerr << "some variable for testing";
如果我们在编译中删除-DLOCAL 标志,cerr 将不会在控制台上显示任何输出。
即使我们忘记删除所有不会影响程序的测试语句,这也很有帮助。因为我们一般不会使用-DLOCAL 进行编译。
谢谢
【讨论】:
#ifdef LOCAL,但除了你自己之外没有人有任何办法知道这一点。