기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.
http://www.aesop.or.kr/Board_Community_Freeboard/126661 에 관련하여 이어서 질문드립니다.
#include <stdio.h>
int main()
{
printf("test\n");
return 0;
}
이라는 test.c파일을 크로스컴파일러로 컴파일하여 바이너리 파일 상태를 확인해봤는데요
1. arm-linux-g++
#arm-linux-g++ test.c
#file a.out
a.out: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.14, not stripped
보드에서 바이너리 실행하면 정상실행됩니다.
2. arm-none-linux-gnueabi-g++ test.c
#file a.out
a.out: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.16, not stripped
실행 잘됩니다.
3. arm-linux-gnueabihf-g++ test.c
#file a.out
a.out: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.31, BuildID[sha1]=0x850f7396c5ed0992a52994af2a28c05cbb66fca2, not stripped
보드에서 실행안됨.
3번 컴파일러로 하면 보드에서 실행시키면 아래와 같이 나옵니다.
~ # ./a.out
-sh: ./a.out: not found
file 명령으로 바이너리 파일을 보면 다른 바이너리들과 다르게
'BuildID[sha1]=0x850f7396c5ed0992a52994af2a28c05cbb66fca2'
메시지가 추가되는데요. 이것이 좀 영향이 있는것 같은데;;
이런 문제 혹시 해결해보신 분이 계신지요? 조언좀 부탁드립니다.
컴파일러가 안맞는 경우입니다.
굳이 3번째 컴파일러를 사용해야 하는 이유라도 있으신지요??
왠만해선, 보드(or cpu) 밴더에서 적절한 컴파일러를 제공할텐데요...