Mam dużą aplikację, którą napisałem. Mogę pomyślnie skompilować aplikację w następujących scenariuszach:
- w natywnej kompilacji dla hosta i386 z systemem Ubuntu 12.04
- natywnie na PandaBoard z systemem Ubuntu 12.04 (zajmuje to dużo czasu)
- używanie Qemu i chroota na komputerze-hoście dla celu armhf PandaBoard (zajmuje to bardzo dużo czasu)
Chciałbym skompilować krzyżowo aplikację na hoście i386, aby działała na celu, takim jak PandaBoard, w celu terminowego ukończenia kompilacji. Dotychczasowe próby użycia łańcucha narzędzi arm-linux-gnueabihf w repozytoriach spowodowały, że pliki binarne nie działają poprawnie. Na tym etapie nie planuję pakietu oprogramowania.
Jaki jest zalecany sposób osiągnięcia udanej kompilacji krzyżowej?
software-installation
cross-compilation
Jonathan Cave
źródło
źródło
Odpowiedzi:
https://wiki.linaro.org/Platform/DevPlatform/CrossCompile/UsingMultiArch
https://wiki.ubuntu.com/MultiarchCross
Ubuntu ma cross-toolchain,
apt-get install gcc-arm-linux-gnueabihf
ale prace nad łańcuchem narzędzi nowej generacji zostały omówione tutaj: http://gsoc.sitedethib.com/posts/apt-get_install_gcc-4.7-arm-linux-gnueabihf/Na tym etapie istnieje wiele obejść. Na przykład, jeśli używasz linkowania pośredniego (opisanego na stronie wiki linaro). Powinieneś także unikać uruchamiania obcych plików binarnych zaraz po ich skompilowaniu.
Ponadto jest naprawdę najbardziej dojrzały z automatycznymi narzędziami.
Mój pakiet dość szybko się skompilował.
źródło