[英]Cross-compile hello world program from VS2012 on Windows 7 to Windows XP
我正在尝试交叉编译以下hello-world程序
#include <iostream>
int main()
{
std::cout << "Hello world!" << std::endl;
}
我的主机平台在Windows 7 SP1 64位计算机上将Microsoft Visual Studio Express 2012用于Windows桌面。 我的目标平台是具有248 MB RAM的32位Windows XP Embedded设备(2002 Service Pack 2版)。 我按照http://blogs.msdn.com/b/vcblog/archive/2012/10/08/10357555.aspx上的命令行说明进行交叉编译。
我可以从https://dev.windows.com/en-us/microsoft-edge/tools/vms/windows/在“ IE6 on XP”虚拟机中成功运行我的hello_world.exe,这使我充满信心交叉编译很好。 但是,当我将hello_world.exe复制到Windows XP Embedded设备并尝试运行它时,出现以下应用程序错误:
Dependency Walker(在XP Embedded设备上运行)没有显示任何DLL问题:
我被困在这里。 如果有人能弄清楚为什么我会收到这个奇怪的应用程序错误以及如何解决它,我很高兴听到!
问题解决了。 问题是嵌入式设备的CPU不支持某些指令。 我当时在编译没有/arch
选项的hello_world
程序,但是对于Visual Studio 2012,这意味着启用了SSE2指令。 使用/arch:IA32
选项编译我的hello_world
程序可以解决此问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.