2011-08-15 13 views
1

autoconf/automakeを使うと、システム上でGCCのバージョンを見つける方法は?GCCのバージョンを見つけよう

インストールされているPythonのバージョンを取得するには、AM_PATH_PYTHONを使用して、PYTHON_VERSION変数を使用できるようにします。 GCCのバージョンに似たものはありますか?

(また、それはGCCの、メジャー、マイナー、およびパッチレベルを取得することは可能でしょうか?)

+1

gccがインストールされていない場合はどうしますか? –

+2

Cry。個人的に私は非gccコンパイラをサポートしていません(そして、物理学者コミュニティでは大きな問題ではないと思います)。 – VolatileStorm

答えて

3

クイック検索があなたにGCC_VERSION変数を与える必要がありますax_gcc_versionマクロを明らかにする。

残念ながら、そのマクロは、deprecated in favour ofAX_*_CHECK_FLAGであるAX_GCC_OPTIONに依存します。

これ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

関連する問題