【问题标题】:Cross-compile hello world program from VS2012 on Windows 7 to Windows XP从Windows 7上的VS2012交叉编译hello world程序到Windows XP
【发布时间】:2015-12-21 12:31:19
【问题描述】:

我正在尝试交叉编译以下 hello-world 程序

#include <iostream>

int main()
{
    std::cout << "Hello world!" << std::endl;
}

我的主机平台在 Windows 7 SP1 64 位计算机上使用 Microsoft Visual Studio Express 2012 for Windows Desktop。我的目标平台是具有 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 问题:

我被困在这里。如果有人能解释为什么我会收到这个奇怪的应用程序错误以及如何解决它,我会很高兴听到!

【问题讨论】:

    标签: visual-studio-2012 cross-platform windows-xp windows-xp-embedded dependency-walker


    【解决方案1】:

    问题解决了。问题是嵌入式设备的 CPU 不支持某些指令。我在编译我的hello_world 程序时没有/arch 选项,但对于Visual Studio 2012,这意味着启用了SSE2 指令。使用/arch:IA32 选项编译我的hello_world 程序可以解决问题。

    【讨论】:

      猜你喜欢
      • 2021-12-07
      • 2021-12-21
      • 1970-01-01
      • 2013-04-21
      • 1970-01-01
      • 1970-01-01
      • 2021-05-03
      • 1970-01-01
      相关资源
      最近更新 更多