6
我使用clang
,gcc
和tcc
,我希望能夠區分這三個在一個共同的標題。通過實現定義的宏識別叮,gcc和tcc
從他們的宏觀轉儲判斷,我預計宏的存在將唯一地標識clang。
我無法獲得與tcc
($compiler -x c -E -dM /dev/null
在其情況下不起作用)的宏轉儲。
什麼是宏(s)(如果有的話),將唯一標識gcc(和可能tcc)?
我使用clang
,gcc
和tcc
,我希望能夠區分這三個在一個共同的標題。通過實現定義的宏識別叮,gcc和tcc
從他們的宏觀轉儲判斷,我預計宏的存在將唯一地標識clang。
我無法獲得與tcc
($compiler -x c -E -dM /dev/null
在其情況下不起作用)的宏轉儲。
什麼是宏(s)(如果有的話),將唯一標識gcc(和可能tcc)?
使用__TINYC__檢測tcc 。
gcc和鐺的檢測在這個StackOverflow的問題進行了說明:Detect gcc as opposed to msvc/clang with macro
(引自:http://bellard.org/tcc/tcc-doc.html#SEC9)
__TINYC__是一個預定義宏爲1,表明您使用TCC。
也許'__GNUC__'? –
有gcc的重複,你應該只問tcc。 – 2501
@KerrekSB clang也定義了'__GNUC__'。 – PSkocik