gcc tanınmayan komut satırı seçenekleri '-V' ve '-qversion' ile autoconf


17

Gcc 4.7.2 ve autoconf 2.69 ile derlerken, rutin olarak configure.log dosyasında bunun gibi sonuçlar alıyorum. Misal:

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

Derleme başarıyla devam ediyor, ancak autoconf'un gcc'nin desteklemediği komut satırları için neden test ettiğini merak ediyorum. Bu diğer derleyiciler için mi?

Yanıtlar:


11

Buna atıfta bulunarak:

gcc -V, birden fazla sürümünüz olduğunda belirli bir gcc sürümünü seçmenin bir yoludur, ancak burada bir yemdir: configure, günlüğe kaydedebildiğinden emin olmak için bir dizi seçenek (--vers -v -V vb.) C derleyicisinin sürümü, gcc ya da başka bir şey olsun.

Buna atıfta bulunarak:

gcc, sürüm raporları için -V seçeneğine sahipti. Şimdi -v kullanır ve derleyici oluşturulduğunda kullanılan yapılandırma seçeneklerini sunar.

Paketiniz biraz tarihli ve bu gerçeği yansıtmıyor.

BTW, -qversion seçeneği -v ile birleştirildi ...

Buna atıfta bulunarak:

Gcc'nin bazı sürümlerinde -V seçeneği, derleyicinin belirli bir sürümünü kullanmasını söyler - ancak bir bağımsız değişken gerektirir. Burada belgeleniyor. Seçenek, 4.5.4 ile 4.6.4 arasında bir süredir kaldırılmış gibi görünüyor.

buna referans veren:


1

Modern autoconf sürüm 2.69, aşağıdaki genişletilmiş derleyici bilgi çıkarma yöntemiyle kullanılabilir:

# 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

Modern ve eski sürüm çıkartma bayraklarını denemek için zaten uyarlanmıştır. Düzeltme en son satırdadır ve 1. başarıdan sonra testi atlamanızı sağlar.


"G-Man 'Monica'yı Eski Haline Getir" diyor benim düzenlememi çalıyor. Yazıklar olsun sana.
okwap
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.