저는 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
더 유용합니다 .