나는 gcc-arm-linux-gnueabi
과 binutils-arm-linux-gnueabi
을 사용하고 gcc
대신 arm-linux-gnueabi-gcc
을 사용하여 x86 기반의 Ubuntu 12.04 프로그램을 컴파일했다. 대상 아키텍처는 ARM이다. 오류나 경고없이 잘 컴파일됩니다.크로스 컴파일 바이너리가 존재하지 않습니까?
나는 ARM 시스템에서 실행하려고하면 (Pandaboard이 - 또한 우분투 12.04를 실행) 내가 얻을 :
bash: ./sttyl: No such file or directory
나는 파일이 알고는 적절한 권한이 있습니다
-rwxrwxr-x 1 haziz haziz 8.5K Feb 10 10:34 sttyl
을
file sttyl
의 출력은 내가 아빠에 기본적으로 컴파일 할 때
sttyl: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.31,BuildID[sha1]=0x6d504f7d84b93603122223a89e2b5960c840309f, not stripped
입니다 그것을 컴파일하고 잘 실행 ndaboard.
sttyl: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.31,BuildID[sha1]=0x9897c785266c5b7cdf580e08091aba239db84ecf, not stripped
내가 잘못 뭐하는 거지 : 이것은 기본적으로 컴파일 된 사본에 file sttyl
의 출력을 무엇입니까? 더욱이 크로스 컴파일에서 실수를했다면 쉘/커널이 실행 파일이 잘못된 아키텍처를위한 것이라는 것을 효과적으로 알리라고 기대했을 것입니다!
동적 링커 또는 C 라이브러리에 문제가있을 수 있습니다. 'readelf -a your_program'을 시도하고 "프로그램 인터프리터 요청"을 찾으십시오. – Mat