gcc 2단계 컴파일 중 다음 오류가 났어요..이럴땐 어떻게 해야 하나요?
글쓴이: falhed / 작성시간: 월, 2008/05/19 - 3:16오후
gcc 컴파일 중입니다.
../gcc-3.4.6/configure --target=arm-linux --prefix=/usr/local/arm --enable-languages=c,c++
make 컴파일 하니 다음 오류나네요.
/usr/local/arm/arm-linux/bin/ld: /usr/local/arm/arm-linux/lib/crti.o: Relocations in generic ELF (EM: 3)
/usr/local/arm/arm-linux/lib/crti.o: could not read symbols: File in wrong format
collect2: ld returned 1 exit status
make[2]: *** [libgcc_s.so] 오류 1
crti.o 파일이 glibc컴파일 후 생겼는데 왜 못 읽을까요? 답변 부탁드립니다.ㅠㅠ
Forums:
관심이 없는 것인지... 아니면 ARM에 대해 아는 분이 없는 것인지...
같은 질문을 계속 올리시는데 좀 딱하군요.
저는 도와드릴 능력은 없구요.
아시는 분은 구원의 손길을...
다른 개발자 site라도 가보셔서...-_-.
하여간 같은 질문 글은 왠만하면 더이상 보고 싶지 않은 개인적 소망입니다.
glibc 는 크로스 컴파일 하셨나요?
올리신 글의 오류 내용으로 보건데, crti.o 가 ELF 방식으로 컴파일 되지 않았다고 생각합니다.
크로스 컴파일 하셨나요? ELF 방식으로 컴파일 하도록 지정하셨나요?
====
( - -)a 이제는 학생으로 가장한 백수가 아닌 진짜 백수가 되어야겠다.
해당 crti.o를
해당 crti.o를 에디터로 열거나 file 명령어로 확인해보세요...
원하는 파일포멧이 맞는지...
도와드리고 싶어도
도와드리고 싶어도 못 도와드립니다.
툴체인 만들기의 기본 틀은,
binutils
gcc #1
glibc
gcc #2 (with c++, ...)
지만, 실제로 하려고하면 host / target 의 gcc 버전에 따라 config 내용이 천차만별입니다.
이 분이 binutils 부터 자신이 한 config 내용을 전부 적고,
출력 메시지들을 전부 적는다해도, 실제로 답변할 사람이 직접 그대로 해보기 전에는 뭐가 어떻다라는 말을 명확히 해 줄 수도 없고요.
구체적인 예를 제시해주는 http://www.kegel.com/crosstool/ 이 있긴하지만,
이 역시 부족하거나 필요한 부분을 고쳐서 뭔가를 해보기엔 심하게 무리가 있습니다.
툴체인 만들기에 목숨 거셨다면 이 사이트의 스크립트를 보고 자신이 개척하는 수 밖에 없고,
단순히 신뢰성 높은 arm 툴체인이 필요할 뿐이라면 http://www.codesourcery.com/ 이 최고입니다.
(strongarm 은 제외)
일련의 질문들에 대해 아무도 답변을 달지 않았던 것은,
저 두개의 사이트는 어떤 방법으로 검색해도 3순위 안에 들어갈 정도로 대표적인 사이트이기 때문일 겁니다.
OTL
답변 감사합니다.
그래도 여기 사이트 글 올린 보람이 있습니다.
꼭 그래도 맞는거는 아니지만 조그마한 답변이 저한테는 힘이 됩니다.
답변 해주신 분들께 감사합니다.
소스 컴파일과 오브젝트 링크에 쓰인 컴파일러가 다른듯합니다.
CXX는 기본값이 g++입니다.
CXX를 크로스컴파일러로 설정하지 않고,
$(TARGET) : $(OBJS)에서만 크로스컴파일러로 빌드하게 하셨다면,
저런 에러가 발생합니다.
메이크파일 윗부분쯤에 CXX = 크로스컴파일러경로 를 넣어주세요.
그럼 빌드 잘 됩니다.
저도 저 에러때문에 구글링 엄청했어요.
4년전 질답에 댓글을 남기는 이유는..
.
.
.
.
.
.
.
.
.
.
(그냥요 'ㅅ')
나중에 같은 문제로 또 찾을까봐서요~
감사합니다.ㅠㅠ
답답해 미칠뻔 했어요.ㅠㅠ
댓글 달기