如何判断{C}编译器上__GNUC__
定义的值是什么?
答案 0 :(得分:7)
您可以使用以下命令获取所有GCC预定义宏:
g++ -dM -E - < /dev/null
快速的grep会让你得到你想要的东西。
答案 1 :(得分:3)
使用gcc
的“仅预处理”模式(-E
)(为方便起见,通过STDIN而不是文件输入):
[tomalak@renee ~]$ echo "__GNUC__" | g++ -E -
# 1 "<stdin>"
# 1 "<built-in>"
# 1 "<command-line>"
# 1 "<stdin>"
4
我不确定前四行输出是什么,但最后一行是你正在寻找的。 p>
答案 2 :(得分:1)
这适用于任何宏:
echo "int main() {}" | gcc -xc++ -ggdb3 -
readelf --debug-dump=macro a.out | grep MACRO_YOU_ARE_LOOKING_FOR
或
dwarfdump -m a.out | grep MACRO_YOU_ARE_LOOKING_FOR