2011-08-15 78 views
1

使用autoconf/automake如何在系统上找到GCC版本?查找GCC版本

要安装python版本,您需要使用AM_PATH_PYTHON,然后PYTHON_VERSION变量将可用。 GCC版本有类似的东西吗?

(而且,是有可能得到GCC的主要,次要和补丁级别?)

+1

如果甚至没有安装gcc,你会怎么做? –

+2

哭。我个人并不支持非gcc编译器(并且在物理学界我不认为这是一个大问题)。 – VolatileStorm

回答

3

快速搜索揭示了ax_gcc_version宏应该给你GCC_VERSION变量。

不幸的是,该宏依赖于AX_GCC_OPTION,最近deprecated in favour ofAX_*_CHECK_FLAG

mailing list post提出了ax_gcc_version补丁金额为:

AC_DEFUN([AX_GCC_VERSION], [ 
    GCC_VERSION="" 
    AX_CHECK_COMPILE_FLAG([-dumpversion], 
    [ax_gcc_version_option=yes], 
    [ax_gcc_version_option=no]) 

    AS_IF([test "x$GCC" = "xyes"],[ 
    AS_IF([test "x$ax_gcc_version_option" != "xno"],[ 
     AC_CACHE_CHECK([gcc version],[ax_cv_gcc_version],[ 
     ax_cv_gcc_version="`$CC -dumpversion`" 
     AS_IF([test "x$ax_cv_gcc_version" = "x"],[ 
      ax_cv_gcc_version="" 
     ]) 
     ]) 
     GCC_VERSION=$ax_cv_gcc_version 
    ]) 
    ]) 
    AC_SUBST([GCC_VERSION]) 
]) 

我没有测试过这一点,但它看上去很聪明。


(而且,是有可能得到GCC的主要,次要和补丁级别?)

一旦你的版本字符串GCC_VERSION,您可以手动分割字符串获取主要版本,次要版本和补丁版本。这是一个简单的解决方案:

GCC_VERSION_MAJOR=$(echo $GCC_VERSION | cut -d'.' -f1) 
GCC_VERSION_MINOR=$(echo $GCC_VERSION | cut -d'.' -f2) 
GCC_VERSION_PATCH=$(echo $GCC_VERSION | cut -d'.' -f3) 
+0

我有一个问题:为什么您需要将值缓存在'ax_cv_gcc_version'中,然后将其设置为' GCC_VERSION'到它?我 – Bionix1441