0

我在 $TOOLCHAIN 上正确安装了我的目标系统 (arm) 的工具链。

的输出ls $TOOLCHAIN是:bin debug-root include lib lib32 lib64 sysroot

bin/*的内容不加前缀,即gcc、g++、as、...

现在,我有一个应用程序的源代码分发,我想用给定的工具链为这个目标系统编译。源代码分发有一个配置脚本。

这个怎么做?提前致谢。

4

1 回答 1

1

构建一个交叉编译器/binutils 通常非常困难,而且它不允许您测试您的程序。
虚拟机速度非常慢,并且会产生很强的分离性,这使得主机和虚拟机之间难以共享文件。

最简单的解决方案是Qemu-User-static:系统调用和指令以用户模式包装到本机内核。

下载或解压rootfs。

  • 将其复制到您的真实根目录的子文件夹中。
  • 将 qemu-user- (你的 mips 架构的名称) -static 复制到目标目录的根目录。
  • 正确绑定挂载一切。
  • 将 /etc/resolv.conf 复制到 /your_path_to_target/etc/resolv.conf
  • 通过执行 /bin/bash 对其进行 Chroot。
  • 像使用真正的基于 mips 的机器一样使用 rootfs。

事情变得非常简单:由于硬编码路径之类的原因,许多库没有被编译(你会遇到很多;很多问题,比如你在交叉编译时遇到的问题,一个典型的例子)。这一切都发生了,就好像您在本地构建包并且您必须键入./configure.

于 2014-05-02T08:56:29.997 回答