[英]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.