VS2010(32bit) + WIN7(64bit) 編譯出不同平台程序版本


一、X86,即一般普通PC上跑的程序版本,不用修改工程屬性

 

二、X64

1、設置工程平台---會在工程目錄下生成  X64 文件夾

在工具欄--->生成--->配置管理器 窗口

  設置“活動解決方案平台”和“平台” 為X64,“平台”那里沒有X64,就點擊新建。

2、選擇目標機器平台

在工具欄--->項目--->xx屬性 窗口

  選擇  “配置屬性”--->"鏈接器"--->"高級"--->"目標計算機"--->"MachineX64"

 

 

三、DLL依賴問題

1、取消依賴CLR     

  選擇  “配置屬性”--->"C/C++"--->"公共語言運行時支持"  設置為無

2、設置MFC庫連接方式

  “配置屬性”--->"常規"--->"MFC使用"

  設置為   “使用標准windows庫“  或 ”在靜態庫中使用MFC“

3、設置代碼生成運行庫

  “配置屬性”--->"C/C++"--->"代碼生成"

  設置 ”運行庫” 為 "多線程/MT"

 

 

附上CSDN論壇上的一個版主的說明:

1. 確定用的是32位編譯器
2. 確定不使用/clr選項:這將依賴.NET
3. 確定使用/MT靜態鏈接CRT
這樣編譯出來的程序自然可以到處跑。

 

四、可能出現的情況

1、X64下工程平台和機器目標平台不一致報錯

  fatal error LNK1112: 模塊計算機類型“X86”與目標計算機類型“x64”沖突——我的解決方案

 

五、備注

1、活動解決方案平台,這個和目標程序運行沒什么關系,應該不用設置。

  驗證 “活動解決方案平台” 為X64 , 項目平台設置為“WIN32”,在X86 xp下還是能運行,生成程序的目錄在Release下,而不是X64/Release

2、項目平台改變,目標平台也會改變

  驗證 “目標計算機” 設置為“MachineX64” , 切換工程平台為WIN32時,查看 “目標計算機” 設置已變成 “MachineX86”

3、X86運行X64編譯出來的程序報錯信息如下:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM