我已经分叉了一个使用自动工具的项目,并添加了需要 c++11 的功能,然后至少需要 gcc 4.7。
我应该在 configure.ac 中添加什么来检查 gcc 4.7 版是否至少可用?然后使用符合此要求的最小版本,或者如果它更高,则使用系统默认版本?
请记住,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])
根据您的要求进行修改。
除了 GCC 之外还有其他支持 C++11 的编译器,为什么要针对特定版本的 GCC 进行测试?
Autoconf 存档有一个宏需要 C++11 支持,来自任何正在使用的编译器。