arm-linux-gnueabihf-g++ 컴파일하여 실행시키면 -sh: ./a.out: not found 라고 나오는데요
글쓴이: biokk / 작성시간: 목, 2014/09/11 - 9:10오전
arm 컴파일러는 이용하여 실행시킬려고 하는데요
test1.c 파일을 만들어서
#include
int main()
{
printf("test\n");
return 0;
}
이런 기본예제를 만들고 arm-linux-gnueabihf-g++ 컴파일러는 이용하여 컴파일을 하였습니다.
#file a.out 을 보면 ARM version 이라고 나오고오 있고요
이것을 마운트하여 타켓보드로 옮긴후 실행 시키면
-sh: ./a.out: not found 라고 나옵니다.
기존의 arm-linux-g++ 같은 방식으로 하면 정상적인 메세지가 출력이 되는데요
arm-linuxguneabihf-g++로 하면 실행이 안되는데요
이런문제는 어떻게 해결해야 하나요?
Forums:
타겟의 실행환경은 hard float
타겟의 실행환경은 hard float 인가요?
arm-linux-gnueabihf-g++로 컴파일을 하였으니 a.out은 hard float용 라이브러리와 링크된 상태입니다.
그런데, 타겟에 존재하는 라이브러리들이 hard float용이 아니라면 실행시에 링크가 되지 않을 수 있습니다.
ARM 아키텍쳐의 3가지 float ABI(soft, softfp, hardfp)의 차이점을 이해하는 것이 중요합니다.
"-sh: ./a.out: not found" 라고
"-sh: ./a.out: not found" 라고 나오는 이유는 arm-linux-gnueabihf-g++ 가 지정한 loader(/lib/ld-linux-armhf.so.3 따위)를 찾지 못했기 때문입니다.
댓글 달기