autoconf를 사용하여 인식 할 수없는 gcc 명령 줄 옵션 '-V'및 '-qversion'


16

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 버전을 선택하는 방법입니다. 여기서는 미끼입니다. C 컴파일러의 버전은 gcc 또는 다른 것입니다.

이것을 인용 :

gcc는 버전 보고서에 -V 옵션을 사용했습니다. 이제 -v를 사용하고 컴파일러를 빌드 할 때 사용 된 구성 옵션을 제공합니다.

패키지는 약간 구식이며 그 사실을 반영하지 않습니다.

BTW, -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'라고 말합니다."편집 내용을 훔칩니다. 부끄러운 줄 알아
5
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.