如何生成autotools ./configure强制执行C11的_Generic?

时间:2015-02-17 08:51:03

标签: c gcc clang autotools c11

我有一个autotools项目,需要一个支持C11 _Generic功能的编译器。

Clang 2.3和gcc 4.9支持此功能,但gcc 4.8.2(随Ubuntu 14.04LTS提供)不支持。

(令人困惑的是,gcc 4.8.2支持--std=c11,但不支持该标准的_Generic功能。)

configure.ac是否有一个宏来强制使用_Generic兼容的编译器?

1 个答案:

答案 0 :(得分:3)

没有针对此的内置测试,但我认为您可以使用AC_COMPILE_IFELSE轻松完成此操作。手册解释了所有细节,但基本上你会使用_Generic作为参数给它一个测试程序,然后调用失败案例AC_MSG_ERROR

但在某些情况下,我认为最好不要检查您打算无条件使用的语言功能。您可以使用它们并让编译失败。