autoconfでgcc認識されないコマンドラインオプション '-V'および '-qversion'


15

gcc 4.7.2およびautoconf 2.69でコンパイルすると、configure.logにこれらのような結果が定期的に表示されます。例:

configure:3091: $? = 0 
configure:3080: gcc -V >&5 
gcc: error: unrecognized command line option '-V' 
gcc: fatal error: no input files compilation terminated. 
configure:3091: $? = 1 
configure:3080: gcc -qversion >&5 
gcc: error: unrecognized command line option '-qversion' 
gcc: fatal error: no input files compilation terminated. 
configure:3091: $? = 1 
configure:3111: checking whether the C compiler works 
configure:3133: gcc -march=x86-64 -mtune=generic -Os -pipe -Wl,-O1 conftest.c >&5
configure:3137: $? = 0 
configure:3185: result: yes

コンパイルは成功しますが、なぜautoconfがgccがサポートしていないコマンドラインをテストしているのかと思います。これは他のコンパイラ用ですか?

回答:


11

これを引用:

gcc -Vは、複数のバージョンがある場合に特定のgccバージョンを選択する方法ですが、ここではおとりです。configureは、一連のオプション(--version -v -Vなど)を使用して反復し、ログに記録できることを確認しますCコンパイラのバージョン(gccなど)。

これを引用:

gccには、バージョンレポート用の-Vオプションがありました。現在は-vを使用し、コンパイラーのビルド時に使用された構成オプションを提供しています。

あなたのパッケージは少し日付があり、その事実を反映していません。

ところで、-qversionオプションは-vにマージされました...

これを引用:

gccの一部のバージョンでは、-Vオプションは、指定されたバージョンのコンパイラを使用するように指示しますが、引数が必要です。ここに記載されています。このオプションは、4.5.4から4.6.4の間に削除されたようです。

これを参照する:


1

最新のautoconfバージョン2.69は、次の拡張コンパイラ情報抽出方法で使用できます。

# Provide some information about the compiler.
$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
set X $ac_compile
ac_compiler=$2
for ac_option in --version -v -V -qversion; do
  { { ac_try="$ac_compiler $ac_option >&5"
case "(($ac_try" in
  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
  *) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
  ac_status=$?
  if test -s conftest.err; then
    sed '10a\
... rest of stderr output deleted ...
         10q' conftest.err >conftest.er1
    cat conftest.er1 >&5
    rm -f conftest.er1 conftest.err
  fi
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
  if test $ac_status = 0; then break; fi}
done

これは、最新のバージョンと従来のバージョンの抽出フラグを試すようにすでに調整されています。修正は最後の行にあり、最初の成功後にテストをスキップできます。


「G-Manは 'Reinstate Monica'と言います」は私の編集を盗みます。恥を知れ。
okwap
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.