STLPort的編譯和安裝 (轉)
STLPort的編譯和 - 王猛 (to:HeartIcy@163.com">HeartIcy@163.com)
前言
STLPort是一套C++模板庫,BCB6整合的正是此庫的早期版本。雖然STLPort並沒有100%完整支援
ANSI標準的規定,但是從寶藍肯採用此模版庫作為標準配備可見其自有獨到一面!現在我談一下
我編譯以及使用此開發庫的感受。不過我要說明的是,我是一個C設計專家而不是C++,我的
體會或者說心得僅僅是如何在專案中使用並將其應用到專案中。
編譯
環境
STLPort支援多平臺下的常用,可是說是包羅永珍!在下編譯STLPort你要先注意三
點:1 修改vc98/bin下的vcvars32.bat ;2 不要試圖使用 PlatfoSDK ;3 準備好符號!
為什麼?請聽我慢慢道來。
關於第一點,你需要根據你的平臺修改,vcvars32.bat從命令列下進行編譯。當然,你可以參照
makefile文件自己製作工程在中編譯,不過STLPort本身沒這個檔案!
包含路徑在 set INCLUDE = 中追加STLPort目錄下的stlport目錄,例如:
set INCLUDE=F:STLportstlport;%MSir%ATLINCLUDE;%MSVCDir%INCLUDE;%MSVCDir%
MFCINCLUDE;%INCLUDE%
包含庫路徑在 set LIB= 中追加STLPort目錄下的lib目錄,例如:
set LIB=F:STLportlib;%MSVCDir%LIB;%MSVCDir%MFCLIB;%LIB%
好了,第一點完成了!
關於第二點,大家注意到了我並沒有包含進Platform SDK的過來,事實上我的機器中安裝有此更
新的年2月版(支援新特性!)。我堅持不包含進來的原因是,在Platform SDK中更新過
的部分檔案編譯STLPort時無法正常工作。也不奇怪,這會兒正忙著猛推來著!切忌不要用!
關於第三點,如果沒有除錯符號檔案在編譯DE版本的時候會給你一個Link錯誤提示 :( 不過,即
使沒有再一邊nmake仍然可以輸出檔案,不過這樣出來的檔案能不能正常工作我就不知道了!
當你完成了上述三步之後,你日後可以繼續用這個環境在命令列下編譯你的STLPort程式。
makefile檔案
在STLPort的src目錄下存放了眾多.mak檔案,這些檔案就是STLPort為其多平臺多編譯器支援所準備
的傑作。我們使用VC來編譯可以根據編譯器的版本選擇不同的.mak檔案:
VC.Net使用vc7.mak,VC5使用vc5.mak(STLPort官方測試支援),VC6的選擇就相對多了一點,有三
個檔案可以選擇,用NT系列的選擇vc6t.mak,用98之類的選擇vc6.mak,需要獲得unicode支援的就用
vc6-unicode.mak,vc6-unicode.mak是針對98編寫的,雖然NT可以直接套用但是我自己還是小小的修
改了一下:將!INCLUDE vc_common.mak 替換為!INCLUDE vc_commont.mak。其實你如果你懂得規則完
全可以根據自己的需要編寫一個.mak前端檔案出來,STLPort為了方便自行編寫makefile檔案的開發人
員提供了一個名為build-tempinc-xlc.mk的模版檔案。
用命令列在src目錄下,執行copy 你選擇的.mak makefile, 偷懶的在這個時候 nmake install就可
以連編譯到安裝一次解決!不過,還是多學點東西好,我繼續講我的。如果你在link它的DEBUG編譯時
出現了link錯誤,不要灰心你可以再執行一邊剛才的命令(強烈不推薦!)或者自定義編譯。
** 這一步你不copy直接 nmake -f xxx.mak 一樣可以。
自定義編譯
比如我討厭Debug版,所以我就直接編譯release。方法很簡單,如果要編譯一個靜態庫可以用:
nmake release_static
要編譯一個動態庫則用
nmake release_dynamic
注意了,自定義編譯沒有現成的install來用,要自己改makefile,太麻煩了。
安裝
如果你是自定義編譯那麼必須看一下這裡。
1 STLPort所產生的動態庫DLL複製到system32(NT)或者system(98),目錄下。
2 將stlport子目錄複製到vc的include目錄下。
3 將.lib .exp檔案複製到vc的lib目錄下。
如果你不打算刪除stlport的目錄第2、3步是可選的,因為vcvars32.bat已經做了定位。否則你
最好還是順便修改一下vcvars32.bat。
專案中的應用
1 無論怎樣stlport必須處於INCLUDE目錄的第一位。
2 動態庫編譯link stlport_vc6.lib 靜態link stlport_vc6_static.lib。
3 如果使用動態庫記得copystlport_????.dll到釋出的程式中,否則,嘿嘿!你知道的!
完畢?
透過電子,我可以為你提供有限的技術支援。因為我不是C++ Coder!謝謝閱讀
本文。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-956278/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 安裝 GCC 編譯器(轉)GC編譯
- win7 vs2005 編譯stlportWin7編譯
- 【轉】MySQL原始碼編譯安裝MySql原始碼編譯
- PHP的編譯安裝PHP編譯
- FreeBSD編譯安裝新核心(轉)編譯
- FreeBSD手工編譯安裝程式(轉)編譯
- 在solrais下編譯安裝MySQL(轉)SolrAI編譯MySql
- Centos下Ambari2.7.5的編譯和安裝CentOS編譯
- 編譯安裝zabbix編譯
- apache編譯安裝Apache編譯
- 編譯安裝nmon編譯
- swoole 編譯安裝編譯
- 編譯安裝Nginx編譯Nginx
- 編譯安裝mysql編譯MySql
- nginx編譯安裝Nginx編譯
- 安裝編譯ffmpeg編譯
- Griffin編譯安裝編譯
- 手把手教你編譯安裝MPlayer(轉)編譯
- ubuntu GNOME下完美編譯安裝EVA(轉)Ubuntu編譯
- LNMP—Nginx的編譯安裝LNMPNginx編譯
- Android 原始碼的下載和編譯環境的安裝及編譯Android原始碼編譯
- OpenSSL的在windows和Linux中的編譯和安裝WindowsLinux編譯
- Greenplum_原始碼編譯安裝和RPM包安裝原始碼編譯
- Linux下nginx編譯安裝教程和編譯引數詳解LinuxNginx編譯
- Fedora Core 5 下編譯安裝 Emacs 23(轉)編譯Mac
- Shell編譯安裝nginx編譯Nginx
- centos PHP 編譯安裝CentOSPHP編譯
- httpd編譯安裝phphttpd編譯PHP
- Mysql 5.7.17 編譯安裝MySql編譯
- Xopsed的編譯與安裝編譯
- 原始碼編譯安裝的原理原始碼編譯
- ffmpeg安裝之linux編譯安裝Linux編譯
- CentOS7編譯和安裝GCC7.5CentOS編譯GC
- doris編譯和安裝部署詳細步驟編譯
- linux網路卡驅動程式的編譯與安裝(轉)Linux編譯
- Linux上安裝GCC編譯器過程(轉)LinuxGC編譯
- 如何進行Apache的編譯安裝Apache編譯
- CentOS 下編譯安裝 NginxCentOS編譯Nginx