我有一个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
兼容的编译器?
答案 0 :(得分:3)
没有针对此的内置测试,但我认为您可以使用AC_COMPILE_IFELSE
轻松完成此操作。手册解释了所有细节,但基本上你会使用_Generic
作为参数给它一个测试程序,然后调用失败案例AC_MSG_ERROR
。
但在某些情况下,我认为最好不要检查您打算无条件使用的语言功能。您可以使用它们并让编译失败。