GCC/g+是否有从命令行转储其预处理器定义的方法?我是说像__GNUC__, __STDC__等等。
3 回答
繁星淼淼
TA贡献1775条经验 获得超11个赞
-E -dM
gcc -dM -E - < /dev/null
g++ -dM -E -x c++ - < /dev/null
与正常输出不同,为执行预处理器(包括预定义宏)期间定义的所有宏生成一个‘#Defined’指令列表。这为您提供了一种查找预处理器版本中预定义的内容的方法。假设您没有文件foo.h,则命令 touch foo.h; cpp -dM foo.h
将显示所有预定义的宏。
如果使用-dm而不使用-E选项,则-dm被解释为-fdump-rtl-mach的同义词。
万千封印
TA贡献1891条经验 获得超3个赞
$ gcc -dM -E - < /dev/null
$ gcc -dM -E - < /dev/null | grep SSE[34]#define __SSE3__ 1#define __SSSE3__ 1
-msse4
$ gcc -dM -E -msse4 - < /dev/null | grep SSE[34]#define __SSE3__ 1#define __SSE4_1__ 1#define __SSE4_2__ 1#define __SSSE3__ 1
-O0
-O3
$ gcc -dM -E -O0 - < /dev/null > /tmp/O0.txt $ gcc -dM -E -O3 - < /dev/null > /tmp/O3.txt $ sdiff -s /tmp/O0.txt /tmp/O3.txt #define __NO_INLINE__ 1 < > #define __OPTIMIZE__ 1
- 3 回答
- 0 关注
- 575 浏览
添加回答
举报
0/150
提交
取消