原帖地址: http://www.shnenglu.com/tx7do/archive/2007/10/11/33950.html
ACE 的安裝
from:http://hi.baidu.com/erdosfish/blog/item/27b06c22bb93caa54723e8e6.html
ACE的安裝是一件比較麻煩的事情,這里簡單的記錄了我在VS2005下安裝ACE的過程,希望能給大家一個(gè)參考。
安裝環(huán)境:
-
- 操作系統(tǒng):Windows XP 專業(yè)版
- 編譯環(huán)境:VS2005中文版
- ACE版本:ACE-5.5.1
-
安裝過程:
-
下載安裝包。
- Ace的安裝文件可以在http://download.dre.vanderbilt.edu/中下載到,由于我是在windows環(huán)境下安裝并且不需要TAO等其它庫,便下載了ACE-5.5.1.zip。
- 下載完成后將其解壓。我的解壓路徑為D:\Develop\ACE_wrappers。
-
設(shè)置環(huán)境變量
- 在操作系統(tǒng)添加一個(gè)名為ACE_ROOT的用戶環(huán)境變量,值為剛才ace的解壓路徑D:\Develop\ACE_wrappers。
- 添加用戶的Path環(huán)境變量,值為%ACE_ROOT%\lib,這樣才能保證系統(tǒng)能找到ace生成的動(dòng)態(tài)連接庫。
- 設(shè)置VS2005的C++開發(fā)項(xiàng)目信息,依次打開菜單 工具-選項(xiàng)-項(xiàng)目和解決方案-VC++目錄 ,在右側(cè)目錄列表中選擇"包含目錄",添加$(ACE_ROOT),在右側(cè)目錄列表中選擇"庫文件",添加$(ACE_ROOT)\lib。
-
編譯ACE
- 在ACE_ROOT\ace目錄創(chuàng)建一個(gè)名為 config.h的文件。編輯文件并加入以下內(nèi)容
#define ACE_HAS_STANDARD_CPP_LIBRARY 1
#include "ace/config-win32.h"
其中第一行是因?yàn)槲蚁胗脴?biāo)準(zhǔn)C++跨平臺,第二行則是必須要的,表明當(dāng)前是在win32的環(huán)境下進(jìn)行ace的項(xiàng)目。
- 進(jìn)入ACE_ROOT\ace目錄中,能發(fā)現(xiàn)ACE現(xiàn)在已經(jīng)帶VS2005的編譯項(xiàng)目了,直接打開ace_vc8.sln,直接生成ACE項(xiàng)目的Debug版和Release版,編譯過程還比較快,大概就幾分鐘的樣子。編譯鏈接完成后,在ACE_ROOT\lib中一共生成了四個(gè)文件,分別是"ACE.dll","ACE.lib", "ACEd.dll","ACEd.lib",其中帶"d"表示的是Debug版本。
-
檢驗(yàn) ACE
- 打開VS2005,建立一個(gè)空項(xiàng)目,將ACE程序員手冊中的第一個(gè)程序拷入其中。
- 配置屬性->鏈接器->常規(guī)->附加依賴項(xiàng),添入ACEd.lib。
- 編譯,如果不出意外的話就能看到你的ace版的" hello world"啦。
注意:
ACE項(xiàng)目的字符集設(shè)置是"未設(shè)置",而VS2005的c++項(xiàng)目默認(rèn)字符集是"使用 Unicode 字符集",如果用到了ACE鏈接庫時(shí)需要將字符集改為"未設(shè)置"(在"項(xiàng)目屬性->配置屬性->項(xiàng)目默認(rèn)值->字符集"中配置),否則可能出現(xiàn)鏈接錯(cuò)誤。
至此,ACE的安裝工作便算完成,希望這篇文章對大家安裝ACE有點(diǎn)幫助。
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
支持unicode的ACE編譯。
編譯前在config.h中多添加如下兩行,并且將項(xiàng)目默認(rèn)字符集改為"使用 Unicode 字符集"。
#define ACE_USE_WCHAR
#define ACE_HAS_WCHAR
注意:
在windows平臺下,如果沒有定義如上兩個(gè)宏, ACE會自動(dòng)將 main 函數(shù)重定義, 并主動(dòng)替你把 ACE::init() 和 ACE::fini() 調(diào)用好。添加這兩個(gè)宏后,需要在main函數(shù)中手動(dòng)調(diào)用。
main
函數(shù)重定義這一行為不能保證在所有平臺和環(huán)境下都正常運(yùn)作(如使用MFC時(shí)),其實(shí)不管如何,不妨在 main 函數(shù)的開頭和結(jié)尾分別再調(diào)用一次
ACE::init() 和 ACE::fini()。 ACE::init() 和 ACE::fini()
里面都有嵌套層次計(jì)數(shù)機(jī)制,因此只要它們能夠保證成對出現(xiàn), 并且不出現(xiàn)交叉嵌套, 多調(diào)用一遍并不會出現(xiàn)任何問題
posted on 2007-10-24 09:48
七星重劍 閱讀(2029)
評論(6) 編輯 收藏 引用 所屬分類:
C++ lib -- ACE