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: 해당 파일이나 디렉터리가 없습니다.

다음 질문과 같은 질문입니다여기. 댓글로 질문하신 분도 저와 같은 정보를 주셨네요.

자기가 했다고 하더군요"세 번째" 의 gcc존재제5장. 이런 경우라면 LFS 작성자는 3번의 패스를 수행하라고 명시적으로 지시할 것입니다. 어딘가에서 미묘한 실수를 하고 있는 것 같은데 어디인지 알 수 없는 것 같습니다.

LFS 작성자가 제공한 지원을 바탕으로 그들은 우리에게 전체 작업을 처음부터 다시 수행하도록 요청했습니다. 나는 그 말에 동의하지만, 어디에서 실수가 일어났는지 알지 못하면 우리는 (나처럼) 같은 실수를 다시 저지르게 마련입니다. LFS 지원 문제에 대해 질문한 사람은 나와 일치하는 결과를 제공했습니다. 이것은협회.

같은 주제에 대한 또 다른 질문여기답변이 제공되지 않았습니다.

도와주세요.

그런데 gccLFS의 라이브러리에 연결되어 있지 않은 것을 발견하고 /tools/libLFS 파티션이 마운트된 위치와 그 아래에 수동으로 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를 사용하고 있으며자유도사용자는 LFS-7.5 책의 권장 사항을 따릅니다. 그러나 문제는 훨씬 나중에 chrootLFS 파티션에 들어갈 때 lfs 사용자가 거기에 없다는 것을 깨달았다는 것입니다.Sudoers문서.

Ubuntu는 자동으로 사용자를 추가하지 않습니다.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 빌드 단계에서도 동일한 문제가 발생할 수 있습니다. 가변 초점 문제인 것 같아요.

관련 정보