2013-12-10 15 views
1

我發現我可以在項目屬性下選擇目標機器。有一個大名單:visual studio 2008目標機器類型列表

MachineX86 (/MACHINE:X86) 
MachineAM33 (/MACHINE:AM33) 
MachineARM (/MACHINE:ARM) 
MachineEBC (/MACHINE:EBC) 
MachineIA64 (/MACHINE:IA64) 
MachineM32R (/MACHINE:M32R) 
MachineMIPS (/MACHINE:MIPS) 
MachineMIPS16 (/MACHINE:MIPS16) 
MachineMIPSFPU (/MACHINE:MIPSFPU) 
MachineMIPSFPU16 (/MACHINE:MIPSFPU16) 
MachineMIPSR41XX (/MACHINE:MIPSR41XX) 
MachineSH3 (/MACHINE:SH3) 
MachineSH3DSP (/MACHINE:SH3DSP) 
MachineSH4 (/MACHINE:SH4) 
MachineSH5 (/MACHINE:SH5) 
MachineTHUMB (/MACHINE:THUMB) 
MachineX64 (/MACHINE:X64) 

我有以下問題:

  1. 那是什麼的縮寫的含義?
  2. 需要的硬件?
  3. 所需的軟件和/或操作系統?
  4. 可以在x86系統上構建二進制文件嗎?如果是,如何配置Visual Studio 2008 Express?
  5. 如果編譯好x86,x64,itanium,是否必須在代碼中進行任何更改?
+0

有人知道例如「AM33」是什麼? – BalticMusicFan

回答

2

此設置用於配置用於編譯源代碼的CPU架構。根據您選擇的體系結構,您將得到不同的二進制文件。

針對特定CPU架構編譯的二進制文件具有一種結構,該文件在加載到內存後可以理解。例如,有一些命令可供CPU執行以及加載數據。

是否可以針對不同體系結構編譯相同的源代碼取決於您正在做什麼。你通常都可以,但是很容易通過做數據大小敏感的東西來破壞交叉兼容性,直接操縱內存,這取決於架構特定的功能等等。

另外,很容易編寫依賴於特定操作系統中可用的功能。這與此設置沒有直接關係,但當然如果您打電話給一個只能在PC上使用的Windows API,並且試圖爲ARM編譯時,它不起作用 - 不會有任何爲ARM編譯的庫,它定義了要鏈接的功能。

+0

這是問題'4'的好答案 – BalticMusicFan

相關問題