[완료]커널 컴파일 하는데 크로스 컴파일러를 찾지 못한다고 나옵니다..아시는분요..
현재 ARM용으루 커널을 컴파일 하려고 하는데 메인루트 밑의 Makefile에서
ARCH ?= arm
CROSS_COMFILE ?= arm-linux-
로 수정을 하였습니다..
그러고 나서 make를 했는데..
[root@localhost linux-2.6.18]# make
make: arm-linux-: 명령을 찾지 못했음
CHK include/linux/version.h
make[1]: 'include/asm-arm/mach-type.h'는 이미 갱신되었습니다.
CHK include/linux/utsrelease.h
CC arch/arm/kernel/asm-offsets.s
/bin/sh: arm-linux-: command not found
make[1]: *** [arch/arm/kernel/asm-offsets.s] 오류 127
make: *** [prepare0] 오류 2
이렇게 나옵니다..
참고로 이 루트에서 test.c를 생성하여 gcc -o test test.c 하고 arm-linux-gcc -o test-arm test.c를 실행했는데 모두 파일이 생성됐고 파일을 확인하면
test는
test: ELF 32-bit LSB executable, intel 80386, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped
이렇게 나오구요
test-arm은
test-arm: ELF 32-bit LSB executable, ARM, version 1 (ARM), dynamically linked (uses shared libs), not stripped
이렇게 나옵니다..
머가 문제인지 아시는 분은 답변 좀 부탁 드립니다..
일단은
크로스컴파일러가 있는곳의 절대경로를 쓰시면 될듯합니다.
-----------------------------------
"그때의 두려움을 어찌 잊을 수 있으리오!"
왕이 말했다.
"하지만"
여왕은 말을 이었다.
"메모해 두지 않으면 잊고 말 겁니다."
"그때의 두려움을 어찌 잊을 수 있으리오!"
왕이 말했다.
"하지만"
여왕은 말을 이었다.
"메모해 두지 않으면 잊고 말 겁니다."
Makefile 의 다른
Makefile 의 다른 부분을 손보신 적이 있는 모양이네요.
처럼 되어있던 것을
처럼 수정하신 기억이 없으신지 ?
OTL
절대경로도 안되고 Makefile도 수정한 것이 없는데 안되네요..ㅠㅠ
음.. 위의 두분 말씀대로 절대경로로도 해보았지만 역시나 찾질 못하네요..
그리고 혹시나 해서 현재 사용중인 커널(2.6.18)을 직접 다운로드 해서 Makefile을 비교해봤는데.. 최상위 디렉토리는 물론이고
arch/arm 밑의 Makefile, arch/arm/boot 밑에 Makefile, arch/arm/mach-at91rm9200 밑에 Makefile 도 모두 고친 곳이 한군데도 없더군요..
도대체 어떻게 컴파일을 한것인지..
혹시 make menuconfig나
혹시 make menuconfig나 make xxx_defconfig(xxx_defconfig 파일들은 'arch/arm/configs'에서 찾아보실수 있습니다.)로 컴파일 할 타겟을 설정 하지 않으셨나요?
설정이 잘 적용되었다면 컴파일이 잘 될텐데요.
앗..방금 해결되었습니다..
어제 서점간게 보람이 있네요..ㅎㅎ
그냥 Make할 때 지정해서 하니까 되네요..
[root@localhost linux-2.6.18]# make ARCH=arm CROSS_COMPILE=arm-linux-
요렇게 하니까 되네요..
근데..왜 Makefile에 지정하면 못찾고 직접 명령어로 지정하면 찾죠??
음..
설마가
설마가 사람잡는군요.
CROSS_COMPILE := arm-linux-
라고 수정하셨겠죠. 맨 끝에 눈에 보이지 않는 공백문자 붙여서.
쉽게 확인해보시려면
make V=1
로 컴파일 시도해보시면 됩니다.
arm-linux-gcc 를 실행시키는 게 아니라 arm-linux- gcc 를 실행시키고 있을겁니다.
OTL
댓글 달기