Pie*_*don 107 c macros clang c-preprocessor
我正在尝试检测用于编译源代码的编译器.我可以很容易地找到预定义的宏来检查MSVC或GCC(例如参见http://predef.sourceforge.net/),但我找不到任何宏来检查clang.
有人知道clang是否定义了一个宏__CLANG__
,以便知道当前正在编译我的代码的是什么?
Chr*_*ter 117
要获取编译器使用的所有预定义宏的列表,请使用以下命令:
clang -dM -E -x c /dev/null
Run Code Online (Sandbox Code Playgroud)
你可以为gcc做同样的事情.
Pie*_*don 76
使用strings
+ 找到答案grep
:
$ strings /usr/bin/clang | grep __ | grep -i clang
__clang__
Run Code Online (Sandbox Code Playgroud)
Ber*_*ann 39
这个问题已经回答了多年,但是让我在Windows中添加(以供将来参考)它是如何完成的:
echo | clang -dM -E -
Run Code Online (Sandbox Code Playgroud)
与海湾合作委员会相同:
echo | gcc -dM -E -
Run Code Online (Sandbox Code Playgroud)
请注意:最后一个破折号-
实际上很重要!(否则你得到error: no input files
两个编译器)
归档时间: |
|
查看次数: |
30092 次 |
最近记录: |