저는 Linux Mint 호스트에 Linux From Scratch 시스템을 구축하려고 합니다. 그러나 version-check.sh 파일을 실행하면 , 및 가 있는데도 시스템에 , 및 가 libgmp.la
없다는 libmpfr.la
메시지 가 반환됩니다 . 버전 확인 결과는 다음과 같습니다.libmpc.la
libgmp10
lipmpc3
libmpfr4
bash, version 4.2.45(1)-release
/bin/sh -> /bin/dash
Binutils: (GNU Binutils for Ubuntu) 2.23.52.20130913
bison (GNU Bison) 2.7.12-4996
/usr/bin/yacc -> /usr/bin/bison.yacc
bzip2, Version 1.0.6, 6-Sept-2010.
Coreutils: 8.20
diff (GNU diffutils) 3.2
find (GNU findutils) 4.4.2
GNU Awk 4.0.1
/usr/bin/awk -> /usr/bin/gawk
gcc (Ubuntu/Linaro 4.8.1-10ubuntu9) 4.8.1
g++ (Ubuntu/Linaro 4.8.1-10ubuntu9) 4.8.1
(Ubuntu EGLIBC 2.17-93ubuntu4) 2.17
grep (GNU grep) 2.14
gzip 1.6
Linux version 3.11.0-12-generic (buildd@komainu) (gcc version 4.8.1
(Ubuntu/Linaro 4.8.1-10ubuntu7) ) #19-Ubuntu SMP Wed Oct 9 16:12:00 UTC 2013
m4 (GNU M4) 1.4.16
GNU Make 3.81
GNU patch 2.7.1
Perl version='5.14.2';
sed (GNU sed) 4.2.2
tar (GNU tar) 1.26
xz (XZ Utils) 5.1.0alpha
g++ compilation OK
libgmp.la: not found
libmpfr.la: not found
libmpc.la: not found
노트:나는 이 책의 버전 7.5를 따르고 있으며 32비트 Linux Mint 호스트(커널 3.11.0-12)를 사용하고 있습니다.
답변1
또한 내 시스템에 LFS 시스템을 구축해 보았습니다. 우분투 14.04를 사용하고 있습니다. 버전 확인 중에도 같은 메시지가 나왔습니다. 계속해서 5장을 읽었고 gcc를 설치하는 동안 오류와 함께 make가 실패했습니다. 온라인 도움말과 메일링 리스트를 확인하면서 도서관이 어디에 있는지, 즉 어디서 /usr/lib
찾았는지 지적해야 한다는 것을 알았습니다.스택 오버플로 질문.
검색해 보니 /usr/lib
이러한 라이브러리가 존재하지 않는 것으로 나타났습니다. 그래서 mpfr, gmp, mpc를 다운로드하여 설치했습니다. 아래 링크를 클릭하세요:좋은 제조 관행,MPFR그리고도플러.
노트:빌드 및 설치를 따르세요.지시하다mpc 및 mpfr에 대한 gmp가 제공됩니다. gmp를 사용하면 make check
테스트가 1번 실패했습니다. LFS에서는 이것이 문제가 되지 않을 것으로 예상됩니다. gmp make check 1의 예가 테스트에 실패했습니다.여기.
답변2
그러면 설치된 패키지가 포함된 파일이 생성됩니다.
dpkg --get-selections > package_list
cat package_list | grep ^gcc
-> OK!
cat package_list | grep gmp
-> libgmp10:amd64
cat package_list | grep mpfr
-> libmpfr4:amd64
cat package_list | grep mpc
-> libmpc3:amd64
locate libgmp10
-> /var/lib/dpkg/info/libgmp10:amd64.list
locate libmpfr4
-> /var/lib/dpkg/info/libmpfr4:amd64.list
locate libmpc3
-> /var/lib/dpkg/info/libmpc3:amd64.list
cat /var/lib/dpkg/info/libgmp10\:amd64.list
-> /usr/lib/x86_64-linux-gnu/libgmp.so.10.2.0
-> /usr/lib/x86_64-linux-gnu/libgmp.so.10
cat /var/lib/dpkg/info/libmpfr4\:amd64.list
-> /usr/lib/x86_64-linux-gnu/libmpfr.so.4.1.2
-> /usr/lib/x86_64-linux-gnu/libmpfr.so.4
cat /var/lib/dpkg/info/libmpc3\:amd64.list
-> /usr/lib/x86_64-linux-gnu/libmpc.so.3.0.0
-> /usr/lib/x86_64-linux-gnu/libmpc.so.3
이 요구 사항 으로 인해 64비트 아키텍처 및 Debian 기반 운영 체제에서 사용되는 경우 libgmp.la
및 libmpfr.la
. libmpc.la
그러나 위 프로세스의 결과는 이러한 패키지가 실제로 시스템에 존재한다는 것을 나타내므로 앞으로 나아갈 수 있습니다.
답변3
귀하의 질문에 대한 Creek의 답변은 주석에 나와 있습니다. LFS 책(7.6을 인용하고 있음)에는 귀하가 언급한 세 가지 라이브러리(libgmp.la, libmpfr.la 및 libmpc.la)에 대해 다음과 같이 나와 있습니다.
"이 스크립트로 식별된 파일은 모두 존재하거나 모두 없어야 하지만, 한두 개만 존재해서는 안 됩니다."
즉, 출력에 따르면 이러한 라이브러리를 사용하여 다른 작업을 수행할 필요가 없습니다. 즉, 아직 LFS 설치를 완료하지 않았습니다. 내 답변은 책에 나온 답변만큼 좋습니다. 나도 원래 같은 문제가 있었기 때문에 여기까지 왔습니다.
답변4
다음 라이브러리를 다운로드하고 압축을 풀고 컴파일하고 설치합니다.
- libgmp.la
- libmpfr.la
- libmpc.la
이를 수행하는 일반적인 절차는 다음과 같습니다.
tar -xvf lib.name
cd lib.name
./configure --prefix=/usr
sudo make
sudo make install
bash library-check.sh