从telnet执行嵌入式设备中的文件时执行格式错误
问题描述:
我有一个由32位ARM-7 Winbond CPU和uClinux操作系统组成的嵌入式设备。我有Windows 7 64位机器。我已经为Ubuntu安装了Virtual Box以编译程序并通过ftp服务器上传它。嵌入式设备中的文件正在从远程登录服务器执行。该设备有其自己的vdi文件,但无法打开虚拟框中的图像,所以我在Ubuntu中安装了Virtual Box。从telnet执行嵌入式设备中的文件时执行格式错误
的问题是:
当我编译程序,并通过FTP上传的设备,在执行从远程登录其不执行该程序,并显示“Exec的格式错误”的文件。 所以我调试它的可执行文件显示“堆栈粉碎检测”。 如何解决这个问题?
当我从虚拟机中的服务器上将示例代码从Windows复制到Ubuntu并且通过ftp在设备中加载程序未执行时。和我一样,我使用Windows 7,我通过Windows ftp程序正在执行的设备上传示例代码。 这是为什么发生?
答
您无法运行针对不同体系结构构建的程序。 您的应用程序是为x86 64位体系结构构建的,并且您尝试在32位ARM上运行它) 您必须为给定的体系结构交叉编译您的程序。
在这里你可以看到交叉编译:
你怎么编这个程序?您需要为此设备专门编译它。 –
我使用Virtual Box在Ubuntu中编译程序。 – bp04