6.7 lfs 7.5에서 Linux 헤더 'make mrproper'가 실패합니다.

6.7 lfs 7.5에서 Linux 헤더 'make mrproper'가 실패합니다.

저는 lfs-7.5를 만들고 있습니다.

내가 make mrproper챕터에서 달릴 때6.7, 그것은 말한다 :

make: gcc: 명령을 찾을 수 없습니다

실행 시 다음과 bash /tools/bin/gcc같이 표시됩니다.

bash: /tools/bin/gcc: 해당 파일이나 디렉터리가 없습니다.

이는 다음과 같은 문제입니다.여기. 댓글로 질문하신 분이 알려주신 정보도 저와 동일합니다.

했다고 하더군요"세 번째 패스" gcc5장. 이것이 사실이라면 LFS 작성자는 우리에게 3번의 패스를 수행하라고 명확하게 지시했을 것입니다. 어딘가에서 미묘한 실수를 하고 있는 것 같은데, 어디인지 알 수 없는 것 같습니다.

LFS 작성자가 제공한 지원에 따르면 그들은 우리에게 처음부터 모든 것을 다시 실행하도록 요청합니다. 나는 그 말에 동의하지만 어디서 실수가 일어났는지 알지 못하면 우리는 (나처럼) 같은 실수를 다시 저지르게 마련입니다. LFS 지원 질문에 질문한 사람이 제공한 결과가 나와 일치합니다. 이것이링크.

같은 주제에 대한 또 다른 질문여기아무런 답변도 내놓지 않았습니다.

도와주세요.

gcc그런데 LFS의 라이브러리에 연결되지 않았다는 사실을 알았을 때 LFS 파티션을 마운트한 위치 와 아래 에 /tools/lib수동으로 simlink를 만들었습니다 . 하지만 내가 처형 을 하고 있을 때libc.so.6/lib/lib64/mnt/lfsmake headers_check6.7( 이후 make mrproper) 찾지 못했다고 불평을 했고 libz.so, 에서 검색을 해보니 /tools/lib찾을 수 없었습니다.

답변1

이전에 제출한 답변이 다음과 같은지 모르겠습니다.옳은아니면.

나는 파일 에 사용자가 있는 에서 계속 작업 LFS-7.5하기 로 결정했습니다 . 마무리 후Linux Mintlfssudoers제5장, 에서 다시 오류가 발생했습니다.6.7장 make mrproper. 그래서 아래의 폴더를 모두 삭제 $LFS하고 $LFS/sources처음부터 시작했습니다.

의 두 번째 패스를 마친 후 gcc의 라이브러리가 gcc아래 라이브러리를 가리키는 지 여부를 확인했습니다 $LFS/tools. 그러나 나는 그들이 여전히 /usr호스트 시스템을 지적하고 있음을 발견했습니다 .

그래서 첫 번째 패스부터 다시 빌드했는데 gcc모든 것이 괜찮았습니다.

따라서 의 두 번째 패스 후에 다음을 gcc수행하십시오.

ldd$LFS/tools/bin/$LFS_TGT-gcc

결과 출력이 를 가리키면 /usr의 첫 번째 패스부터 다시 실행합니다 gcc.

적어도 이것은 내가 사용한 방법이었고 gcc두 번째의 첫 번째 패스를 다시 실행한 직후 위 명령의 출력은 $LFS/tools/lib.

답변2

make mrproper다음 명령을 성공적으로 실행할 수 있었습니다 . 이것이 정말로 위의 문제에 대한 해결책인지는 잘 모르겠습니다. 어쨌든 여기는 다음과 같습니다.

나는 Ubuntu 14.04를 사용하고 있었고lfsLFS-7.5 책에서 제안한 사용자입니다. 그러나 문제는 훨씬 나중에 chrootLFS 파티션에 들어갈 때까지 lfs 사용자가 파티션에 없다는 것을 깨닫지 못했다는 것입니다.sudoers파일.

우분투는 사용자를 자동으로 추가하지 않았습니다.sudoers아마도 우분투 사람들이 디자인한 파일일 것입니다. 이것이 이유일지도 모릅니다. 우분투에서는 다시 시도하지 않았습니다.

나는 낙담하여 LFS-7.5를 시도하기 시작했습니다.리눅스 민트 16그리고 자동으로 사용자를sudoers파일을 제출했고 모든 것이 잘 진행되었습니다.6.7장건축하고 설치하는 동안리눅스 헤더.

답변3

나는 똑같은 문제를 겪었습니다. gcc에서 사용하는 동적 링커를 확인했는데, readelf -l /tools/bin/gcc | grep interpreter그렇지 않았습니다 ./tools/lib64/ld-linux-x86-64.so.2하지만/lib64/ld-linux-x86-64.so.2. 그래서 이 파일이 존재하지 않아서 gcc를 실행할 수 없었습니다.
문제는 gcc Pass2 구축 단계에서 발생했습니다. CC, CXX, AR 및 RANLIB의 정의를 구성 명령과 같은 줄에 넣지 않았습니다.

나는 달렸다

CC=$LFS_TGT-gcc
CXX=$LFS_TGT-g++
AR=$LFS_TGT-ar
RANLIB=$LFS_TGT-ranlib
../configure --prefix=/tools ...

대신에

CC=$LFS_TGT-gcc \
CXX=$LFS_TGT-g++ \
AR=$LFS_TGT-ar \
RANLIB=$LFS_TGT-ranlib \
../configure --prefix=/tools ...

binutils pass2 빌드 단계에서도 동일한 문제가 적용될 수 있습니다. 가변 초점의 문제인 것 같아요.

관련 정보