我通常是這樣做的:
$ gcc -dM -E - < /dev/null
注意,一些預(yù)處理器定義依賴于命令行選項-您可以通過將相關(guān)選項添加到上面的命令行來測試這些選項。例如,要查看默認情況下啟用了哪些SSE 3/SSE4選項:
$ 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
類似地,您可以看到兩組不同的命令行選項之間有哪些選項不同,例如,比較預(yù)處理器定義的優(yōu)化級別。-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