일부 USB NCM 관련 테스트 사례를 실행해야 하며 일부 테스트 코드를 .c 파일에 작성했습니다. GCC 컴파일러를 사용하여 Ubuntu 호스트에서 .c 파일을 컴파일하고 장치 콘솔에서 실행을 시도했지만 "-sh: 바이너리를 실행할 수 없습니다" 오류가 발생했습니다. 장치 측에는 GCC가 설치되어 있지 않습니다.
uname -a 명령은 다음 o/p를 제공합니다.
> Host:
4.4.0-31-generic Ubuntu x86_64
> Device:
3.14.55-yocto-standard #1 SMP PREEMPT Fri Oct 12 13:34:50 CEST 2018 i686 GNU/Linux
나는 호스트와 장치 사이에 환경적 차이가 있다는 것을 이해합니다. 어쨌든 장치 측 콘솔에서 .c 파일을 컴파일하고 실행해야 합니다.
답변1
x86_64와 i686 명령어 세트는 다릅니다(자세한 내용은).
호스트 시스템에서 소스 코드를 컴파일하려면 다음 명령을 사용하십시오.
gcc -m32 -mtune=i686 source.c -o source
이와 같은 오류가 발생하면 fatal error: *.h : No such file or directory
적합한 크로스 컴파일 라이브러리가 없다는 의미입니다.
sudo apt install g++-multilib
gcc 명령을 다시 실행하십시오.
인용하다: