为什么clang -dumpversion报告4.2.1

arv*_*ved 10 autotools clang

我试图使用-dumpversion来确定编译器是否可用.我的项目用clang和更新的gcc编译,但不是用旧的gcc 4.2.1编译.

那为什么clang假装是一个老gcc?

额外的问题,是否可以在运行时更改此值?

或者有没有人有一个很好的autoconf宏来确定与clang和gcc的编译器版本?

tha*_*kis 7

Clang最初编写为与gcc 4.2.1兼容.今年早些时候有一些关于更新这个数字的讨论,但也有一些问题.

对于autoconf检查,clang建议使用其__has_feature扩展名.Clang的文档中列出了您可以使用__has_feature查看的内容.