0

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

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

4

2 回答 2

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])

根据您的要求进行修改。

于 2013-10-17T16:40:23.267 回答
1

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

Autoconf 存档有一个宏需要 C++11 支持,来自任何正在使用的编译器。

于 2013-10-19T06:59:23.240 回答