Ich habe eine große Bewerbung, die ich geschrieben habe. Ich kann die Anwendung in den folgenden Szenarien erfolgreich kompilieren:
- in einer nativen Kompilation für den i386-Host unter Ubuntu 12.04
- nativ auf einem PandaBoard mit Ubuntu 12.04 (dies dauert lange)
- Verwenden von Qemu und einer Chroot auf dem Host-PC für das armhf PandaBoard-Ziel (dies dauert sehr lange)
Ich möchte die Anwendung auf dem i386-Host übergreifend kompilieren, um sie auf einem Ziel wie dem PandaBoard auszuführen und Builds zeitnah abzuschließen. Bisherige Versuche, die Toolkette arm-linux-gnueabihf in den Repositorys zu verwenden, haben zu Binärdateien geführt, die nicht ordnungsgemäß ausgeführt werden. Gegenwärtig habe ich keine Pläne, die Software zu verpacken.
Was ist der empfohlene Weg, um eine erfolgreiche Cross-Kompilierung zu erreichen?
software-installation
cross-compilation
Jonathan Cave
quelle
quelle
Antworten:
https://wiki.linaro.org/Platform/DevPlatform/CrossCompile/UsingMultiArch
https://wiki.ubuntu.com/MultiarchCross
Ubuntu hat eine toolchainübergreifende,
apt-get install gcc-arm-linux-gnueabihf
aber die Arbeit an der Toolchain der nächsten Generation wird hier diskutiert: http://gsoc.sitedethib.com/posts/apt-get_install_gcc-4.7-arm-linux-gnueabihf/Es gibt eine Reihe von Problemumgehungen, die an dieser Stelle erforderlich sind. Wenn Sie beispielsweise indirekte Verknüpfungen verwenden (siehe die Wiki-Seite von Linaro), sollten Sie auch vermeiden, fremde Binärdateien direkt nach dem Kompilieren auszuführen.
Außerdem ist es mit Autotools am ausgereiftesten.
Ich habe mein Paket ziemlich schnell zum Cross-Compilieren gebracht.
quelle