我见过makefile使用-DLINUX标志,但找不到任何文档。 有没有地方可以找到像'gcc'这样的工具的信息,这些工具比最新的更新 正式发布的手册?
答案 0 :(得分:3)
它只定义了C预处理器的LINUX
符号。
可能有一些代码看起来像:
#ifdef LINUX
//Linux-specific code
#elif defined WINDOWS
//Windows-specific code
#endif
答案 1 :(得分:2)
这是-D
选项controlling the preprocessor。它定义了LINUX
宏,然后您可以将其与#ifdef
一起使用。
答案 2 :(得分:1)
根据man gcc
:
-D name
Predefine name as a macro, with definition 1.
因此,它允许从编译命令行定义一个常量。
答案 3 :(得分:0)
它定义了一个名为LINUX的预处理器宏。而已。宏本身LINUX不是预定义的,它可能用于跨平台代码库,其中为Linux目标启用了特定的代码段。为此,实际上可以重新使用预定义的linux
或__linux__
(请参阅gcc -dP -E - < /dev/null
的输出以获取系统上的所有预定义宏)。
有关gcc的标准文档,请参阅http://gcc.gnu.org/onlinedocs/gcc-4.8.2/gcc/(这显然适用于GCC 4.8.2)。据我所知,如果您的系统上尚未安装(或更新)此文档,那么这是最佳查找位置。