1

我有一个由 32 位 ARM-7 Winbond CPU 和 uClinux 操作系统组成的嵌入式设备。我有 Windows 7 64 位机器。我已经为 Ubuntu 安装了 Virtual Box 来编译程序以及通过 ftp 服务器上传它。嵌入式设备中的文件正在从 telnet 服务器执行。该设备有自己的 vdi 文件,但无法在虚拟盒中打开图像,所以我在虚拟盒中安装了 Ubuntu。

问题是:

  1. 当我编译程序并通过 ftp 上传到设备中时,从 telnet 执行文件时,它不会执行程序并显示“执行格式错误”。所以我调试了它显示“检测到堆栈粉碎”的可执行文件。如何解决这个问题?

  2. 当我将示例代码从虚拟机中的服务器从 Windows 复制到 Ubuntu 并通过 ftp 将程序加载到设备中时,未执行。和我对 Windows 7 所做的一样,我通过正在执行程序的 Windows ftp 将示例代码上传到设备中。为什么会发生这种情况?

4

1 回答 1

0

您无法运行为不同架构构建的程序。您的应用程序是为 x86 64 位架构构建的,并且您尝试在 32 位 ARM 上运行它)您必须针对给定的架构交叉编译您的程序。

在这里您可以阅读有关交叉编译的信息:

于 2016-11-08T09:19:27.177 回答