Найти версию GCC - PullRequest
       26

Найти версию GCC

1 голос
/ 15 августа 2011

Используя autoconf / automake, как найти версию GCC в системе?

Чтобы установить версию Python, вы должны использовать AM_PATH_PYTHON, а затем будет доступна переменная PYTHON_VERSION.Есть ли что-то похожее для версии GCC?

(Кроме того, возможно ли получить мажорный, минорный и патч-уровень gcc?)

1 Ответ

3 голосов
/ 15 августа 2011

Быстрый поиск показывает макрос ax_gcc_version , который должен дать вам переменную GCC_VERSION.

К сожалению, этот макрос зависит от AX_GCC_OPTION, который недавно был устаревшим в пользу из AX_*_CHECK_FLAG.

В этом сообщении рассылки предлагается исправление для 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)
...