2011-08-15 110 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