답변:
설치 gcc-arm-linux-gnueabi
및 binutils-arm-linux-gnueabi
패키지를 한 다음 컴파일 arm-linux-gnueabi-gcc
대신 사용하십시오 gcc
.
대상 시스템에 어떤 종류의 Linux 및 binutil이 있는지주의해야합니다. 최신 물건은 하드 플로트입니다.이 경우 다음을 수행하십시오.
sudo apt-get install gcc-arm-linux-gnueabihf
이는 binutils를 포함한 완전한 크로스 컴파일 환경을 제공합니다.
openssl/ossl_typ.h
이미 설치했지만 오류가 발생하지 않았습니다 libssl-dev
.
apt-get source
후, apt-get build-dep
당신은 일반적으로 단지로 컴파일 할 수 있습니다 dpkg-buildpackage -b -uc -us -r
메이크 파일을 변경하지 않고이 쉽게 ARM에 대한 뎁을 구축 할 수있는 방법이 있습니까?
and then just use arm-linux-gnueabi-gcc instead of gcc for compilation
시겠습니까? 컴파일 할 때 make
AFAIK가 자연스럽게 /usr/lib/gcc
또는 그와 비슷한 것을 가리키는 호출을 사용 합니다. arm-linux-gnueabi-gcc를 어떻게 직접 호출 할 수 있습니까?
CC=arm-linux-gnueabihf-gcc make ...
디스크 이미지 제공자는 호환 가능한 크로스 컴파일러도 제공해야합니다.
이것이 유일하게 신뢰할 수있는 방법입니다.
특히 RPI의 경우 제공된 크로스 컴파일러는 https://github.com/raspberrypi/tools 에서 사용할 수 있으며 https://raspberrypi.stackexchange.com/questions/64273/installing-raspberry-에 설명 된대로 사용할 수 있습니다. pi- 크로스 컴파일러 / 83215 # 83215
git clone https://github.com/raspberrypi/tools
export PATH="$(pwd)/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin:${PATH}"
printf '#include <stdio.h>\nint main() { puts("hello world"); }\n' > hello_world.c
printf '#include <iostream>\nint main() { std::cout << "hello world" << std::endl; }\n' > hello_world.cpp
arm-linux-gnueabihf-gcc -std=c99 -o hello_world_c hello_world.c
arm-linux-gnueabihf-g++ -std=c++11 -o hello_world_cpp hello_world.cpp
크로스 컴파일러를 잘못 선택하면 다음이 발생할 수 있습니다.
내가 가장 좋아하는 대안은 Buildroot를 사용하여 자신의 이미지를 빌드하는 것입니다 : https : //.com wi / 49349237 # 49349237 소스에서 모든 것을 빌드하고 모든 것이 호환되는지 확인합니다.