2006年1月10日 星期二

HOWTO 在 VC 下編譯 64 位元程式

安裝完 VS 2005 後(安裝時 Visual C++ 記得要勾選 X64 Compilers and Tools),在開始功能集裡的 Microsoft Visual Studio 2005 → Visual Studio Tools 資料夾內會新增「Visual Studio 2005 x64 Win64 Command Prompt」等。

下面列出 cl.exe(Visuall C++ 的編譯器)的不同版本:

x86 on x86

允許我們建立用於 x86 機器上的應用程式。這個版本的 cl.exe 以 32 bit 的行程來運作,執行於 x86 機器上,也可以執行於 64 bit 的 Windows 作業系統(藉由使用 WOW64 技術)。

Itanium on x86(Itanium cross-compiler)

允許我們建立用於 Itanium 機器上的應用程式。這個版本的 cl.exe 以 32 bit 的行程來運作,執行於 x86 機器上,也可以執行於 64 bit 的 Windows 作業系統(藉由使用 WOW64)。

x64 on x86(x64 cross-compiler)

允許我們建立適用於 x64 系統上的應用程式。這個版本的 cl.exe 以 32 bit 的行程來運作,執行於 x86 機器上,也可以執行於 64 bit 的 Windows 作業系統(藉由使用 WOW64)。

Itanium on Itanium

允許我們建立用於 Itanium 機器上的應用程式。這個版本的 cl.exe 執行時就如同一般的 Itanium 機器上的行程。

x64 on x64

允許我們建立用於 Itanium 機器上的應用程式。這個版本的 cl.exe 執行時就如同一般的 x64 機器上的行程。

Vcvarsall.bat

前面提到的五種編譯器類型,可以藉由 vcvarsall.bat 來執行。預設這個批次檔是位於 C:\Program Files\Microsoft Visual Studio 8\VC\Vcvarsall.bat。

假如未提供任何的參數,這個批次檔會組態用於 x86、32 bit 的編譯器。下面列出可用於 vcvarsall.bat 的參數:

參數編譯器主機(包括模擬的)目標架構
x86(預設)32-bit Nativex86、x64、Itaniumx86
x86_amd64x64 Crossx86、x64, Itaniumx64
x86_IPFItanium Crossx86、x64、ItaniumItanium
amd64x64 Nativex64x64
IPF 或 itaniumItanium NativeItaniumItanium

組態產生 64 bit 平台的目的碼

  1. 開啟要組態成 64 bit 的專案的專案屬性(Property Pages)
  2. 點選「Configuration Manager..」按鈕,開啟 Configuration Manager 對話視窗。
  3. 點選「Active Solution Platform」下拉選單,再選取「」選項開啟「New Solution Platform」視窗。
  4. 選取「Type or select the new platform」下拉選單,選取 x64。
  5. 點擊「OK」。在前一個步驟選取的目標平台(x64)應該會出現在「Active Solution Platform」選單內。
  6. 接著關閉 Configuration Manager 和 Property Pages 視窗。