我已经分叉了一个使用autotools的项目,并添加了需要c ++ 11的功能,然后至少是gcc 4.7。
我应该在configure.ac中添加什么来检查gcc版本4.7是否至少可用?然后使用符合此要求的最小版本,或者如果它更高,则使用系统默认版本?
答案 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,来自正在使用的任何编译器。