O provedor de imagem de disco também deve fornecer um compilador cruzado compatível
Este é o único método confiável.
Para o RPI em particular, os compiladores cruzados fornecidos estão disponíveis em: Ссылка e podem ser usados como explicado em: Ссылка
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
Se você escolher seu próprio compilador cruzado incorretamente, o seguinte pode acontecer:
- o vinculador dinâmico está no caminho errado: Ссылка
- incompatibilidade binária com o glibc e quaisquer outras bibliotecas vinculadas: Ссылка
Minha alternativa favorita é criar sua própria imagem com o Buildroot: Ссылка Isto constrói tudo desde a fonte e garante que tudo seja compatível.