如何在Ubuntu 12.04 i386主机上交叉编译我的Ubuntu 12.04 armhf架构应用程序?

我有一个很大的应用程序。 我可以在以下场景中成功编译应用程序:

  • 在运行Ubuntu 12.04的i386主机的本机编译中
  • 本地运行Ubuntu 12.04的PandaBoard(这需要很长时间)
  • 使用Qemu和主机PC上的chroot作为armhf PandaBoard目标(这需要很长时间)

我想在i386主机上交叉编译应用程序,以便在PandaBoard等目标上运行,以及时完成构建。 到目前为止,在存储库中使用arm-linux-gnueabihf工具链的尝试产生了无法正确运行的二进制文件。 在这个阶段,我没有计划打包软件。

推荐成功交叉编译的方法是什么?

https://wiki.linaro.org/Platform/DevPlatform/CrossCompile/UsingMultiArch

https://wiki.ubuntu.com/MultiarchCross

Ubuntu有一个交叉工具链, apt-get install gcc-arm-linux-gnueabihf但是下一代工具链的工作在这里讨论: http : apt-get install gcc-arm-linux-gnueabihf Linux的gnueabihf /

此时有许多必要的解决方法。 例如,如果您使用间接链接(在linaro wiki页面中介绍。)您还应该在编译后立即避免运行外部二进制文件。

此外,它最成熟的autotools。

我让我的包交叉编译得相当快。

 apt-get build-dep -aarmhf foo-pkg apt-get source foo-pkg cd foo-pkg-* dpkg-buildpackage -aarmhf