소스 패키지 구성 스크립트 문제를 해결하는 가장 좋은 방법은 무엇입니까?

소스 패키지 구성 스크립트 문제를 해결하는 가장 좋은 방법은 무엇입니까?

저는 BLFS(Linux From Scratch) 시스템의 일부로 소스에서 GnuTLS 패키지를 컴파일하려고 했습니다.여기LFS 페이지입니다.

해당 페이지에 나열된 모든 필수 및 권장 패키지를 설치했지만 ./configure스크립트 출력을 기반으로 GnuTLS 소스 트리 상단에서 실행하면 valgrind, libunistring과 같은 여러 패키지를 찾지 못하는 것 같습니다. , libtasn1.

그래서 구성 스크립트가 작동하지 않는 것 같으면 이 문제를 해결하는 가장 좋은 방법이 무엇인지 궁금합니다. 나는 그것을 조사해 보았지만 config.log그다지 도움이 되지 않는 것 같습니다(적어도 valgrind의 경우). 또한 구성 스크립트 자체를 살펴보았지만 40,000줄이 넘는 괴물입니다.

글쎄, 나는 약간 어리석었고 구성 스크립트를 오해했다고 생각합니다. 구성 요약에는 다음과 같이 나와 있습니다.

configure: summary of build options:

  version:              3.5.14 shared 44:6:14
  Host/Target system:   x86_64-pc-linux-gnu
  Build system:         x86_64-pc-linux-gnu
  Install prefix:       /usr
  Compiler:             gcc
  Valgrind:             no 
  CFlags:               -g -O2
  Library types:        Shared=yes, Static=no
  Local libopts:        yes
  Local libtasn1:       no
  Local unistring:      no
  Use nettle-mini:      no
  Documentation:        yes (manpages: yes)

나는 이것이 패키지를 찾을 수 없다는 것을 의미한다고 생각합니다. (나는 "로컬"을 "내 컴퓨터에"를 의미하는 것으로 해석합니다). 그러나 출력을 더 자세히 검색하여 다음을 발견했습니다.

checking for LIBTASN1... yes
checking whether to use the included minitasn1... no

checking for libunistring... yes
checking how to link with libunistring... /usr/lib/libunistring.so

이러한 패키지를 찾은 것으로 보이며 요약의 "로컬"은 이러한 라이브러리의 GnuTLS 자체 내장 버전을 참조해야 합니다. 그땐 좀 혼란스러웠는데 지금은 이해가 되네요. Valgrind의 경우 다음이 표시됩니다.

checking for valgrind... valgrind
checking whether self tests are run under valgrind... no

그래서 다시 찾은 것 같지만, 무슨 이유에서인지 자체 테스트에는 사용하고 싶지 않은 것 같습니다.

어쨌든, 계속해서 빌드하고 테스트가 괜찮은지 확인하겠습니다.

답변1

config.log실패의 정확한 이유가 포함되어야 하는데 configure찾기 어려울 수 있습니다. 이렇게 하려면 config.log의 끝에서 시작해야 합니다. configure중지되었을 때 전체 상태의 덤프를 볼 수 있습니다. 이는 어려운 일이지만 건너뛰면 주요 버그를 발견해야 합니다 configure. 찾아서 Running config.status위로 스크롤하세요...

Autoconf에서 생성된 설정 configure자체를 읽는 데는 별 의미가 없습니다. 소스 코드 configure.ac(또는 configure.in오래된 소프트웨어인 경우)와 해당 파일을 살펴보는 것이 .m4더 유용합니다 .

관련 정보