![크로스 컴파일된 커널에서 gcc를 찾을 수 없습니다.](https://linux55.com/image/78608/%ED%81%AC%EB%A1%9C%EC%8A%A4%20%EC%BB%B4%ED%8C%8C%EC%9D%BC%EB%90%9C%20%EC%BB%A4%EB%84%90%EC%97%90%EC%84%9C%20gcc%EB%A5%BC%20%EC%B0%BE%EC%9D%84%20%EC%88%98%20%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
Pi를 완료하는 데 약 12시간이 걸리기 때문에 Raspbian 커널을 크로스 컴파일하고 있습니다(Raspberry Pi 1).
ARM 및 커널용 빌드 도구를 /home/gray/Desktop/tmp/
.
나는 이 가이드를 따르고 있습니다:Raspberry Pi 커널 컴파일 - eLinux.org
내 문제는 컴파일할 때 CCPREFIX를 내보낼 때 링크한 폴더에 있는 arm-linux-gnueabihf-gcc-4.8.3을 찾을 수 없다는 것입니다. 내가 한 일은 다음과 같습니다.
gray@Rava-Xubuntu:~/Desktop/tmp/linux$ export CCPREFIX=/home/gray/Desktop/tmp/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-
빌드하려고 하면 다음이 반환됩니다.
gray@Rava-Xubuntu:~/Desktop/tmp/linux$ make ARCH=arm CROSS_COMPILE=${CCPREFIX}
/home/gray/Desktop/tmp/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-gcc: 1: /home/gray/Desktop/tmp/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-gcc: arm-linux-gnueabihf-gcc-4.8.3: not found
CHK include/config/kernel.release
CHK include/generated/uapi/linux/version.h
CHK include/generated/utsrelease.h
make[1]: 'include/generated/mach-types.h' is up to date.
CC kernel/bounds.s
/home/gray/Desktop/tmp/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-gcc: 1: /home/gray/Desktop/tmp/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-gcc: arm-linux-gnueabihf-gcc-4.8.3: not found
Kbuild:43: recipe for target 'kernel/bounds.s' failed
make[1]: *** [kernel/bounds.s] Error 127
Makefile:990: recipe for target 'prepare0' failed
make: *** [prepare0] Error 2
파일이 분명히 거기에 있더라도:
감사해요.
답변1
그래서 나는 그것을 알아 냈습니다.
방금 gcc의 크로스빌드 버전을 받았습니다(그게 다인 것 같습니다).
sudo apt-get install crossbuild-essential-armhf
그러면 내 새로운 경로는 다음과 같습니다.
export CCPREFIX=/usr/bin/arm-linux-gnueabihf-
그리고 빌드가 완벽하게 작동합니다!
답변2
arm-linux-gnueabihf-gcc-4.8.3
제공하신 내용에서 실패한 부분을 찾을 수 없습니다.http://pastebin.com/ZdGfP3Qg, 하지만 PATH 환경 변수에 이상한 문자가 포함되어 있습니다.
PATH=/home/gray/Desktop/tmp/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-ras\342\200\214\342\200\213pbian/bin:/home/gray/bin:/usr/local/sbin:/usr/local/bin:/usr/sbi" ...
그런 \342\200\214\342\200\213
부분은 raspbian
없어야 합니다.
스크립트를 다시 확인하고 PATH를 적절하게 설정하세요.
그러나 CROSS_COMPILE은 그대로 나타납니다. gcc가 PATH에서 작업을 실행하려고 하거나 어딘가에 깨진 툴체인/매달린 심볼릭 링크가 있을 가능성이 높습니다.
심층 디버깅을 위해 이 추적을 사용하십시오.
strace -f -v -s150 -o log -eexecve,stat,stat64 (make command)
그럼 하세요 fgrep ENOENT log
. 그런 다음 PATH에서 존재하지 않는 프로젝트를 필터링하고 나머지 프로젝트를 찾아 복구해 보세요.