作者對于VS2003編譯的感想與理解
由于VS2003編譯序太多,此處無法上傳,所以大家有communitysever的可以從里面獲得然后反編譯為自己所用,沒有的就到網(wǎng)絡(luò)上搜下吧,有許多資源呢!我就是在網(wǎng)上找到的,大家也試試吧。
在WINDOWS安裝ACE很簡單,按照 ACE-INSTALL.html 中的說明做就一切OK,首先在 ACE_ROOT\ace 下建立一個config.h文件,然后在其中加入一行 #include "ace/config-win32.h" 即可,另外因為我在學(xué)習(xí)C++嘛,當(dāng)然希望讓ACE使用標(biāo)準(zhǔn)的C++庫了,那就還需要在config.h的第一行()加入一個宏定義:#define ACE_HAS_STANDARD_CPP_LIBRARY 1表明我們要ACE使用標(biāo)準(zhǔn)的C++頭文件,另外還有的配置是是否使用MFC,當(dāng)然我是不使用了,使用了還指望什么跨平臺啊...:)那么按我的需要,config.h文件中就只有如下兩行
#define ACE_HAS_STANDARD_CPP_LIBRARY 1
#include "ace/config-win32.h"
然后就可以打開 ACE_ROOT\ace 目錄下的ace.dsw來進(jìn)行編譯工作了
哦,忘了說:ACE_ROOT就是你安裝ACE的目錄,比如說我是將ACE-5.4.zip解壓縮到 d:\ace 目錄下的,因為ACE-5.4.zip中本身就包含路徑 ACE_wrappers,所以最后 ACE_ROOT 就等于 d:\ace\ACE_wrappers 了,如果你是解壓縮到D:盤的根目錄下,那么ACE_ROOT 就等于 d:\ACE_wrappers 了,以此類推...
VS2003編譯還有一點在你進(jìn)行ace.dsw的時候要注意,因為.DSW是VC6的工程文件,在VC7.1中打開會提示你是否進(jìn)行到VC7.1工程文件的轉(zhuǎn)換,選擇
"全是"就是了,然后在編譯前還有一點要注意:你要編譯出
By default, all of the ACE projects use the DLL versions of the MSVC run-time libraries. You can still choose
use the static (LIB) versions of ACE libraries regardless of run-time libraries. The reason we chose to link
only the dynamic run-time library is that almost every NT box has these library installed and to save disk space.
If you prefer to link MFC as a static library into ACE, you can do this by defining ACE_USES_STATIC_MFC
in your config.h file. However, if you would like to link everything (including the MSVC run-time libraries)
statically, you'll need to modify the project files in ACE yourself.
如上提示的VS2003編譯什么類型的結(jié)果?我是選擇的動態(tài)連接庫,還有就是是DEBUG版本還是RELEASE版本,我是建議DEBUG版本了,因為ACE自帶的EXAMPLE,APPS等都需要的是調(diào)試版本的ACE庫,如果你生成了RELEASE的庫,那你編譯那些例子程序就要費些手腳了,嘿,嘿...
然后編譯一路無話,最后提示沒有任何錯誤,警告,這個ACE寫得可真是厲害啊...另外我覺得VC7.1的編譯速度好象有些慢,VC6下編譯時刷刷刷的編譯信息提示得很快,而VC7.1卻是一秒鐘最多提示編譯結(jié)束一,兩個文件.#t#
ACE庫編譯結(jié)束后的第一件事自然是編譯ACE自帶的EXAMPLE了,我等C++小菜鳥不根據(jù)例子如何學(xué)習(xí)? :P 里面的C++NPv1和C++NPv2當(dāng)然是我們的重點了,對C++想學(xué)習(xí)網(wǎng)絡(luò)編程的可能都聽說過這兩本書,中文版的兩本我都買了,英文版的也下載了 :) 感謝於春景和馬維達(dá)兩位老師的翻譯工作,使我們能更方便的學(xué)習(xí)ACE!
這里我說句題外話,我在網(wǎng)上看到對很多中譯本的書評中好多評論者都在那里可以說是亂罵:這里翻譯得如何不對,那里翻譯的如何不好,我們不如去看原版,不要受什么人什么的騙,他們翻譯出來的是垃圾等等...看到這些我很不舒服,我不否認(rèn)現(xiàn)在有很多中譯本翻譯的是不怎么樣,看了是令人有些頭昏腦漲,但是也不是本本都這樣,而我看到的每本中譯本的書評中都有這些評論,實在是...
在侯捷老師的站點上有這樣一篇文章http://www.jjhou.com/article01-6.htm (科技翻譯面面觀,從計算機(jī)領(lǐng)域談起),這篇文章的內(nèi)容我覺得寫的很實在,精辟,在這里就不重復(fù)了...
我的母語自然是中文了,而且我的英文水平也是一般,在計算機(jī)上看一屏一屏的英文還好,因為可以放大,對拿在手上厚厚一本,密密麻麻的英文書實在是... :P 一般的英文文檔計算機(jī)相關(guān)的可以勉強(qiáng)看完(當(dāng)然大多數(shù)時候還需要金山詞霸的拔刀相助:P),想了解的資料有了中文版我自然想去買來參考,但是我不會要求中譯本百分百完美,我只要求VS2003編譯我能夠大概看明白原來的英文文檔表明的是什么意思就可以了,具體到有什么句子段落覺得翻譯得不好,怎么都看不太懂,能找到英文資料的我就自己去啃,不能的就看看能不能上網(wǎng)去問(大多數(shù)時候都是沒有...:)沒有原版也問不到就放起,說不定以后從別的方面觸類旁通,就豁然開朗了,個人覺得不要太鉆牛角尖... :)
我不會因為這處或那處翻譯的有什么不足,不對,就跳出來亂罵,說是垃圾... :) 拋開急功近利翻譯書的那種不談,起碼翻譯的老師都會將原版書全部看完,然后逐行翻譯成書,試問下那些亂罵的有幾人是全本英文書都逐行看完,然后覺得人家翻譯的不好的?我看大概都是看中文版本覺得有那么幾句不對,然后去翻了下原版就開始亂罵,這樣是不是有些偏頗了,你看幾行,人家老師是看全本,我想誰都知道翻譯幾行跟翻譯全本的差別了!!!我覺得只要是翻譯的老師認(rèn)真翻譯了,翻譯的"信,達(dá),雅"(見上面提到的侯捷老師的文章)也有一定的水準(zhǔn),書中有些小暇瘛在所難免,所謂暇不掩渝嘛,就個人的觀點來看,我覺得任何工作,事物都大多都符合一句大俗話:金無足赤,人無完人,這話對應(yīng)到中譯本也... 嘿,嘿... 你實在不滿,請有禮貌的提出來,在那里亂罵算個什么!!!
好,上面說了那么多題外話,不過實在是忍不住... :VS2003編譯讓我們繼續(xù)上面關(guān)于ACE例子編譯,運行的話題, 下面都以C++NPv1目錄下的文件為例子,其他的例子也類似,首先是編譯,應(yīng)該是沒有什么問題的,如果編譯不通過,請檢查VC7.1的配置,在"工具","選項"中有一個"PROJECT",然后右邊有個"顯示以下內(nèi)容的目錄"的下拉框,點開后選擇"包含文件",然后在其中加入新的一行 ACE_ROOT\include ,在我的機(jī)子中因為ACE_ROOT等于D:\ace\ACE_wrappers\,所以我加入 D:\ace\ACE_wrappers\include, 對應(yīng)到你的機(jī)子,請按實際情況加入...
然后因為編譯后是鏈接嘛,這里順便就說說,因為上面說了,ACE自帶的例子程序使用的都是DEBUG庫,那么在鏈接時你就需要指定aced.lib所在的目錄了,因為VC7.1在編譯ACE庫時,將ACED.LIB等文件放到ACE_ROOT下的LIB目錄了,所以你要在上面"顯示以下內(nèi)容的目錄"的下拉框中繼續(xù)選擇"庫文件",然后加入新的一行加入ACE_ROOT\lib,這樣就一切OK了...
最后就是VS2003編譯程序的運行了,你需要在系統(tǒng)的PATH變量中加入ACE_ROOT\bin和ACE_ROOT\lib 然后再開一個CMD窗口到例子程序的目錄,就可以運行例子程序了...