天天看點

VS2005編譯ACE

ACE的安裝

ACE的安裝是一件比較麻煩的事情,這裡簡單的記錄了我在VS2005下安裝ACE的過程,希望能給大家一個參考。

  1. 安裝環境:
    1. 作業系統:Windows XP 專業版
    2. 編譯環境:VS2005中文版
    3. ACE版本:ACE-5.5.1
  2. 安裝過程:
    1. 下載下傳安裝包。
      1. Ace的安裝檔案可以在http://download.dre.vanderbilt.edu/中下載下傳到,由于我是在windows環境下安裝并且不需要TAO等其它庫,便下載下傳了ACE-5.5.1.zip。
      2. 下載下傳完成後将其解壓。我的解壓路徑為D:/Develop/ACE_wrappers。
    2. 設定環境變量
      1. 在作業系統添加一個名為ACE_ROOT的使用者環境變量,值為剛才ace的解壓路徑D:/Develop/ACE_wrappers。
      2. 添加使用者的Path環境變量,值為%ACE_ROOT%/lib,這樣才能保證系統能找到ace生成的動态連接配接庫。
      3. 設定VS2005的C++開發項目資訊,依次打開菜單 工具-選項-項目和解決方案-VC++目錄 ,在右側目錄清單中選擇"包含目錄",添加$(ACE_ROOT),在右側目錄清單中選擇"庫檔案",添加$(ACE_ROOT)/lib。
    3. 編譯ACE
      1. 在ACE_ROOT/ace目錄建立一個名為 config.h的檔案。編輯檔案并加入以下内容

        #define ACE_HAS_STANDARD_CPP_LIBRARY 1

        #include "ace/config-win32.h"

        其中第一行是因為我想用标準C++跨平台,第二行則是必須要的,表明目前是在win32的環境下進行ace的項目。

      2. 進入ACE_ROOT/ace目錄中,能發現ACE現在已經帶VS2005的編譯項目了,直接打開ace_vc8.sln,直接生成ACE項目的Debug版和Release版,編譯過程還比較快,大概就幾分鐘的樣子。編譯連結完成後,在ACE_ROOT/lib中一共生成了四個檔案,分别是"ACE.dll","ACE.lib", "ACEd.dll","ACEd.lib",其中帶"d"表示的是Debug版本。
    4. 檢驗 ACE
      1. 打開VS2005,建立一個空項目,将ACE程式員手冊中的第一個程式拷入其中。
      2. 配置屬性->連結器->正常->附加依賴項,添入ACEd.lib。
      3. 編譯,如果不出意外的話就能看到你的ace版的" hello world"啦。

注意:

ACE項目的字元集設定是"未設定",而VS2005的c++項目預設字元集是"使用 Unicode 字元集",如果用到了ACE連結庫時需要将字元集改為"未設定"(在"項目屬性->配置屬性->項目預設值->字元集"中配置),否則可能出現連結錯誤。

至此,ACE的安裝工作便算完成,希望這篇文章對大家安裝ACE有點幫助。

 /

支援unicode的ACE編譯。

編譯前在config.h中多添加如下兩行,并且将項目預設字元集改為"使用 Unicode 字元集"。

#define ACE_USE_WCHAR

#define ACE_HAS_WCHAR

注意:

在windows平台下,如果沒有定義如上兩個宏, ACE會自動将 main 函數重定義, 并主動替你把 ACE::init() 和 ACE::fini() 調用好。添加這兩個宏後,需要在main函數中手動調用。

main 函數重定義這一行為不能保證在所有平台和環境下都正常運作(如使用MFC時),其實不管如何,不妨在 main 函數的開頭和結尾分别再調用一次 ACE::init() 和 ACE::fini()。 ACE::init() 和 ACE::fini() 裡面都有嵌套層次計數機制,是以隻要它們能夠保證成對出現, 并且不出現交叉嵌套, 多調用一遍并不會出現任何問題。