无论如何,查看预处理器定义的宏列表



我想查看由调用我正在使用的编译器定义的所有宏。 有什么办法可以做到这一点吗? 我在手册中看到它说您可以使用cpp -dM但这对我不起作用。也许我做错了什么?

当我运行时:

cpp -dM

我根本没有从预处理器获得任何输出。 如果我尝试在 gcc 上添加-dM作为选项,我没有注意到任何区别。

您可以使用:

gcc -dM -E - < /dev/null

请注意,除了使用此命令之外,您还可以获取编译器宏:

touch bla.c && gcc -dM -E bla.c

例如在我的电脑上:

$ touch bla.c && gcc -dM -E bla.c | wc -l
486
$ gcc -dM -E - < /dev/null | wc -l
124
$

默认情况下,cpp -dM将从标准输入读取其输入文件并写入标准输出。 由于您没有尝试预处理任何输入,因此您可以使用/dev/null将空输入传递给它:

# Option 1
cpp -dM < /dev/null
# Optio n2
cpp -dM /dev/null

在 Windows 上,您可以使用 NUL 伪文件而不是 /dev/null

相关内容

  • 没有找到相关文章

最新更新