如何使用autotools强制使用最小的gcc版本?

时间:2013-10-17 16:34:03

标签: gcc c++11 version autotools

我已经分叉了一个使用autotools的项目,并添加了需要c ++ 11的功能,然后至少是gcc 4.7。

我应该在configure.ac中添加什么来检查gcc版本4.7是否至少可用?然后使用符合此要求的最小版本,或者如果它更高,则使用系统默认版本?

2 个答案:

答案 0 :(得分:2)

请记住,GCC安装还包含一个名称相同的可执行文件,但名称中包含一个版本。因此,如果你有GCC 4.7版本,那么除了g++程序之外你还有一个g++-4.7

如果您知道,可以使用以下内容:

dnl # Check which GCC version is wanted
AC_ARG_WITH(gcc,
  [ --with-gcc=<version> Use GCC (gcc and g++) of the specified version],
  [if test "$withval" != yes; then
     AC_PROG_CXX([g++-$withval g++ c++])
     AC_PROG_CC([gcc-$withval gcc])
   elif test "$withval" = yes; then
     AC_PROG_CXX([g++ c++])
     AC_PROG_CC([gcc])
   fi])

根据您的要求进行修改。

答案 1 :(得分:1)

除GCC之外还有其他编译器支持C ++ 11,为什么要对特定版本的GCC进行测试?

Autoconf Archive具有a macro to require C++11 support,来自正在使用的任何编译器。