我有一个嵌入式设备,它由32位ARM-7 Winbond CPU和uClinux OS组成。我有Windows 7 64位机器。我已经为Ubuntu安装了Virtual Box,用于编译程序以及通过ftp服务器上传程序。嵌入式设备中的文件正在从telnet服务器执行。该设备有自己的vdi文件但无法在虚拟框中打开图像,因此我在Virtual Box中安装了Ubuntu。
问题是:
当我编译程序并通过ftp在设备中上传时,从telnet执行文件时,它不执行程序并显示" Exec格式错误"。 所以我调试了它显示的可执行文件" 堆栈粉碎检测到 "。 怎么解决这个问题?
当我从Windows中将示例代码从服务器复制到Ubuntu并通过ftp加载程序时,不会执行。和我在Windows 7中所做的一样,我通过Windows ftp将设备代码上传到程序正在执行的程序中。 为什么会这样?
答案 0 :(得分:0)
您无法运行为不同体系结构构建的程序。 您的应用程序是为x86 64位架构而构建的,您尝试在32位ARM上运行它 您必须为给定的体系结构交叉编译您的程序。
您可以在这里阅读有关交叉编译的信息: