[cross compile] segmentation fault

ddalgi120의 이미지

arm-none-eabi-gcc 로 간단한 Hello.c 파일을 크로스컴파일 해서,
타겟보드에 옮긴 후 실행하면,
segmentation fault가 납니다.

segmentation fault는 메모리를 잘못 참조했을 때 나는 것 같은데,
소스코드가
#include
int main(void) {
printf("Hello, C\n");
return 0;
}
이것뿐인데도 왜 에러가 나는지 잘 모르겠습니다.

크로스 컴파일러가 버전에 맞지 않는건가요..??
파일을 잘못 다운받은건지..ㅠ

gumstix omap3503으로 작업하는 중입니다.

nineye의 이미지

arm-none-eabi-gcc 컴파일러가 참조한 c standard library가 정상적인지 확인해 봐야 할 듯 하네요...

_________________________________________________________

nineye's blog

ddalgi120의 이미지

그런데 그걸 어떻게 확인하는지 설명해주실 수 있으십니까..? ^^;;
그냥 host pc에 arm-2007q1-21-arm-none-eabi-i686-pc-linux-gnu.tar.bz2 이걸 압출 풀어놓고,
path 설정만 해준 게 다인데,
혹시 타겟보드에도 어떤 걸 설치하거나 설정하는 것이 있나요?
초짜를 어여삐 봐주십시오.......... ^^;;

nineye의 이미지

일단 gcc 옵션에 보면 디폴트로 include하거나 linking하는 standard library에 대해 알 수 있거나,
다른 standard library를 지정해 주는 옵션들이 있습니다(어떤 옵션이었는지는 기억이 잘...).
이걸 이용해서 압축 파일내에 있는 standard library를 정확히 이용하고 있는지 체크해봐야 할 것 같고,
정확히 참조하고 있는데도 오류가 난다면, target board에서 stdout이 어떻게 처리되고 있는 지 확인해
봐야 할 것 같네요... printf에서 문제가 생기는 거라면...
단순한 파일 권한 문제라면 권한이 없다는 오류를 발생시키지, 죽지는 않을 것 같고...
target board를 직접 확인 해 보지 않는 이상 어떻게 답변 드리기가 어렵네요... ^^;;

_________________________________________________________

nineye's blog