10

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

那么clang为什么要伪装成老gcc呢?

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

或者是否有人有一个不错的 autoconf 宏来确定带有 clang 和 gcc 的编译器版本?

4

1 回答 1

7

Clang 最初是为了与 gcc 4.2.1 兼容而编写的。今年早些时候有一些关于更新该数字的讨论,但存在一些问题。

对于 autoconf 检查,clang 建议使用它的__has_feature 扩展。Clang 的文档有一个清单,你也可以用 __has_feature 检查

于 2012-11-05T05:09:26.307 回答