shellスクリプトを使用してgccバージョン番号を取得する方法

757 ワード

多くの人がshellスクリプトでgccバージョン番号を取得する方法は、gcc--versionコマンドの出力結果を文字列切り取り処理することによって取得され、実際には、gccのプライマリ、セカンダリバージョン番号、パッチバージョン番号、すなわちgccが提供するバージョンマクロによって取得されるよりも正確な方法がある.
この方法はubootソースコードのgcc-versionを参照する.shスクリプト、コードは以下の通りです.
### configure C compiler
export compiler=$(which gcc)

### get version code
MAJOR=$(echo __GNUC__ | $compiler -E -xc - | tail -n 1)
MINOR=$(echo __GNUC_MINOR__ | $compiler -E -xc - | tail -n 1)
PATCHLEVEL=$(echo __GNUC_PATCHLEVEL__ | $compiler -E -xc - | tail -n 1)

バージョン番号文字列のみが必要で、フィールドの特定の値は必要ありません.gccコンパイラで提供される-dumpversionパラメータも使用できます(注意!'-'!)バージョン番号文字列を取得します.もちろん、このパラメータを使用してバージョン番号を取得する場合はawkコマンドと組み合わせて使用すると、バージョン番号の各フィールドの値も簡単に取得できます.
$ gcc -dumpversion
4.9.3