============================================
經(jīng)典的C++庫(kù)
STLport-------SGI STL庫(kù)的跨平臺(tái)可移植版本,在以前有些編譯器離符合
標(biāo)準(zhǔn)比較遠(yuǎn)的情況下
那時(shí)還是有用的,當(dāng)然目前vc71已經(jīng)比較接近標(biāo)準(zhǔn)了,
故目前不怎么用它了。
Boost---------準(zhǔn)標(biāo)準(zhǔn)庫(kù), 功能強(qiáng)大
涉及能想的到的大部分非特別領(lǐng)域的算法,
有一個(gè)大的C++社區(qū)支持
WxWindows-----功能強(qiáng)大的跨平臺(tái)GUI庫(kù)
,它的功能和結(jié)構(gòu)都類(lèi)似 MFC,故原則上
可以通過(guò)WxWindows把現(xiàn)有MFC程序移植到非Win平臺(tái)下
Blitz---------高效率的數(shù)值計(jì)算函數(shù)庫(kù) ,你可以訂制補(bǔ)充你需要的算法
Log4cpp-------日志處理
,功能類(lèi)似java中的log4j
ACE-----------自適應(yīng)通訊環(huán)境, 重量級(jí)的通訊環(huán)境庫(kù)。
Crypto++
-----加/解密算法庫(kù), 非常專(zhuān)業(yè)的C++ 密碼學(xué)函式庫(kù)
CppUnit --- 一個(gè)c++的單元測(cè)試框架 類(lèi)似 java 的JUnit
Loki ------- 一個(gè)實(shí)驗(yàn)性質(zhì)的庫(kù),嘗試把類(lèi)似設(shè)計(jì)模式這樣思想層面的東西通過(guò)
庫(kù)來(lái)提供,他是C++的一個(gè)模板庫(kù),系C++"貴族", 它把C++模板的功能發(fā)揮到了極致
學(xué)術(shù)性的C++庫(kù):
FC++
--------The Functional C++ Library ,用庫(kù)來(lái)擴(kuò)充語(yǔ)言的一個(gè)代表作 ,模板庫(kù)
CGAL -------
Computational Geometry Algorithms Library計(jì)算幾何方面的大部分重要的
解決方案和方法以C++庫(kù)的形式提供給工業(yè)和學(xué)術(shù)界的用戶。
其它目前我感覺(jué)還不是很爽的C++庫(kù):
Doxygen
----注釋文檔生成工具 ,可恨的是 我找不到 windows版本
QT
----------大名頂頂?shù)囊粋€(gè)多平臺(tái)的C++圖形用戶界面應(yīng)用程序框架(GUI庫(kù))
可氣的是他的 Windows版
是商業(yè)發(fā)布的要付費(fèi)
xml4c--------IBM開(kāi)發(fā)的XML Parser,系超重量級(jí)的, 適用大型應(yīng)用中, 其DLL有 12M,恐怖吧
Xerces c++ --Apache的XML項(xiàng)目, 但 只支持少數(shù)的字符編碼,如ASCII,UTF-8,UTF-16等,
不能處理包含中文字符的XML文檔
XMLBooster ----- 也是一種 XML的 解析工具
Fox
-------又一種開(kāi)放源代碼(C++)的GUI庫(kù),功能不是很強(qiáng)
C++開(kāi)發(fā)環(huán)境(Win平臺(tái)下除了 Visual C++ 和
Borland C++以外的):
Cygwin --------Windows下的一個(gè)Unix仿真環(huán)境
MinGW
--------GCC的一個(gè)Windows移植版本
Dev C++ -------- 一個(gè)C/C++
的集成開(kāi)發(fā)環(huán)境,在Windows上的C++編譯器一直和標(biāo)準(zhǔn)有著一
段距離的時(shí)候,GCC就是一個(gè)讓W(xué)indows下開(kāi)發(fā)者流口水的編譯器。
Eclipse-CDT ----IMB
開(kāi)發(fā)的一個(gè)集成開(kāi)發(fā)環(huán)境,一般用來(lái)作為Java 開(kāi)發(fā)環(huán)境,但由于
Eclipse 是通過(guò)插件體系來(lái)擴(kuò)展功能,這里我們 安裝
CDT插件后,就可以用來(lái)作為
C++
的集成開(kāi)發(fā)環(huán)境
-----------------------------------------------------------------------------------------
經(jīng)典的C++庫(kù)
-----------------------------------------------------------------------------------------
以下以
vc71環(huán)境 為例,其他環(huán)境 見(jiàn)各軟件包的說(shuō)明文檔。
1. STLport (SGI STL庫(kù)的跨平臺(tái)可移植版本。)
-------http://www.stlport.org
vc71環(huán)境中編譯安裝
版本:STLport-4.6.2.tar.gz
copy
vc71.mak makefile
nmake clean all
頭文件在
%STLport_root%/include\stlport
庫(kù)文件在 %STLport_root%/lib
頭文件添加方法如:
#i
nclude 需要鏈接lib庫(kù)
2 WxWindows (跨平臺(tái)的GUI庫(kù))
--------http://www.wxwindows.org
--------http://sourceforge.net/projects/wxwindows
--------http://i18n.linux.net.cn/others/wxWindowstut/wxTutorial.html
因?yàn)槠漕?lèi)層次極像MFC,所以有文章介紹從MFC到WxWindows的代碼移植以實(shí)現(xiàn)跨平臺(tái)的功能。
通過(guò)多年的開(kāi)發(fā)也是一個(gè)日趨完善的GUI庫(kù),支持同樣不弱于前面兩個(gè)庫(kù)。并且是完全開(kāi)放源代碼的。新近
的C++
Builder X的GUI設(shè)計(jì)器就是基于這個(gè)庫(kù)的。
vc71環(huán)境中編譯安裝
版本:wxMSW-2.6.0-Setup.exe
copy makefile.vc makefile
通過(guò) 配置 config.vc 的
SHARED = 0 和 BUILD = debug
確定 nmake clean all 的四種編譯結(jié)果:
include頭文件:
include\wx
Lib庫(kù)文件: lib\vc_dll 和 lib\vc_lib
DLL: lib\vc_dll
頭文件在
%wxWidgets_root%/include\wx
庫(kù)文件在 %wxWidgets_root%/lib\vc_dll 和
%wxWidgets_root%/lib\vc_lib
頭文件添加方法如:
#i nclude
需要鏈接lib庫(kù)
3 boost (“準(zhǔn)”標(biāo)準(zhǔn)庫(kù))
------http://www.boost.org/
------http://sourceforge.net/projects/boost/
Boost庫(kù)是一個(gè)經(jīng)過(guò)千錘百煉、可移植、提供源代碼的C++庫(kù),作為標(biāo)準(zhǔn)庫(kù)的后備,是C++標(biāo)準(zhǔn)化進(jìn)程
的發(fā)動(dòng)機(jī)之一。
Boost庫(kù)由C++標(biāo)準(zhǔn)委員會(huì)庫(kù)工作組成員發(fā)起,在C++社區(qū)中影響甚大,其成員已近2000人
。
Boost庫(kù)為我們帶來(lái)了最新、最酷、最實(shí)用的技術(shù),是不折不扣的“準(zhǔn)”標(biāo)準(zhǔn)庫(kù)。
vc71環(huán)境中編譯安裝
版本:boost_1_32_0.exe
首先進(jìn)入 tools\build\jam_src 運(yùn)行 build.bat 得到一個(gè)工具:
bjam.exe
將其復(fù)制到 boost_root 目錄下
執(zhí)行 bjam "-sTOOLS=vc-7_1" stage 開(kāi)始編譯 (bjam
"-sTOOLS=vc-7_1" install)
頭文件在 %boost_root%/boost
庫(kù)文件在
%boost_root%/stage\lib
頭文件添加方法如:
#i nclude
有時(shí)要鏈接lib庫(kù)
Boost中比較有名氣的有這么幾個(gè)庫(kù):
Regex
正則表達(dá)式庫(kù)
Spirit
LL
parser
framework,用C++代碼直接表達(dá)EBNF
Graph
圖組件和算法
Lambda
在調(diào)用的地方定義短小匿名的函數(shù)對(duì)象,很實(shí)用的functional功能
concept
check
檢查泛型編程中的concept
Mpl
用模板實(shí)現(xiàn)的元編程框架
Thread
可移植的C++多線程庫(kù)
Python
把C++類(lèi)和函數(shù)映射到Python之中
Pool
內(nèi)存池管理
smart_ptr
5個(gè)智能指針,學(xué)習(xí)智能指針必讀,一份不錯(cuò)的參考是來(lái)自CUJ的文章:
Smart Pointers in
Boost,哦,這篇文章可以查到,CUJ是提供在線瀏覽的。
Boost總體來(lái)說(shuō)是實(shí)用價(jià)值很高,質(zhì)量很高的庫(kù)。并且由于其對(duì)跨平臺(tái)的強(qiáng)調(diào),對(duì)標(biāo)準(zhǔn)C++的
強(qiáng)調(diào),是編寫(xiě)平臺(tái)無(wú)關(guān),現(xiàn)代C++的開(kāi)發(fā)者必備的工具。但是Boost中也有很多是實(shí)驗(yàn)性質(zhì)的東西,
在實(shí)際的開(kāi)發(fā)中實(shí)用需要謹(jǐn)慎。并且很多Boost中的庫(kù)功能堪稱(chēng)對(duì)語(yǔ)言功能的擴(kuò)展,其構(gòu)造用盡精
巧的手法,不要貿(mào)然的花費(fèi)時(shí)間研讀。Boost另外一面,比如Graph這樣的庫(kù)則是具有工業(yè)強(qiáng)度,
結(jié)構(gòu)良好,非常值得研讀的精品代碼,并且也可以放心的在產(chǎn)品代碼中多多利用。
3
blitz (高效率的數(shù)值計(jì)算函數(shù)庫(kù))
------http://folk.uio.no/patricg/blitz/html/index.html
------http://www.oonumerics.org/blitz/
------http://sourceforge.net/projects/blitz/
Blitz++
是一個(gè)高效率的數(shù)值計(jì)算函數(shù)庫(kù),它的設(shè)計(jì)目的是希望建立一套既具像C++
一樣方便,同時(shí)
又比Fortran速度更快的數(shù)值計(jì)算環(huán)境。通常,用C++所寫(xiě)出的數(shù)值程序,比
Fortran慢20%左右,因
此Blitz++正是要改掉這個(gè)缺點(diǎn)。方法是利用C++的template技術(shù),程序執(zhí)行甚至可以比Fortran更快。
Blitz++目前仍在發(fā)展中,對(duì)于常見(jiàn)的SVD,F(xiàn)FTs,QMRES等常見(jiàn)的線性代數(shù)方法并不提供,不過(guò)使用
者可以很容易地利用Blitz++所提供的函數(shù)來(lái)構(gòu)建。
vc71環(huán)境中編譯安裝
版本:blitz-0.8.tar.gz
將 blitz-0.8/Blitz-VS.NET.zip 解壓到當(dāng)前目錄下
打開(kāi)
Blitz-Library.sln 編譯即可
頭文件在 %blitz_root%/blitz
%blitz_root%/random
庫(kù)文件在 %blitz_root%/lib (靜態(tài)庫(kù))
頭文件添加方法如:
#i
nclude 有時(shí)要鏈接lib庫(kù)
#i nclude 不需要lib庫(kù)
4 log4cpp
(日志處理)
-------http://sourceforge.net/projects/log4cpp/
-------http://log4cpp.hora-obscura.de/index.php/Main_Page
Log4cpp 是
Log4J 的 C++ 移植版本,開(kāi)放源代碼并且完全免費(fèi)。與 Log4J 能夠跨平臺(tái)一樣,Log4cpp
也致力于寫(xiě)出跨平臺(tái)的 C++
程序。Log4cpp 主要是用于 C++ 程序中寫(xiě) log 文件,與此同時(shí),Log4cpp 中
有很多有用的類(lèi)庫(kù),對(duì)于寫(xiě)跨平臺(tái) C++
程序的人來(lái)說(shuō),可以直接拿來(lái)用,或者作為自己寫(xiě)跨平臺(tái)類(lèi)的參考。
Log4cpp 中的跨平臺(tái)類(lèi)庫(kù)有明顯的 Java 痕跡,比如 Class、Object
、Loader、Locale 等類(lèi)。 Log4cpp
中的類(lèi)都可以根據(jù)類(lèi)名 new 出一個(gè) instance,其實(shí)現(xiàn)的方式和 MFC 如出一轍:通過(guò)
C++ 強(qiáng)大的宏來(lái)實(shí)現(xiàn)。
Log4cpp 中的跨平臺(tái)類(lèi)庫(kù)主要有:
信號(hào)類(lèi):Condition(broadcast,signal,wait),CriticalSection
(lock,unlock),WaitAccess,
Event(set,reset,wait),Mutex(lock,unlock),
Semaphore(wait,tryWait,post)
網(wǎng)絡(luò)類(lèi):InetAddress,Socket,ServerSocket,DatagramSocket,SocketInputStream,
SocketOutputStream
日期類(lèi):DateFormat,DateTimeDateFormat,System(currentTimeMillis)
文件類(lèi):FileWatchdog(doOnChange)
內(nèi)存操作類(lèi):基于引用計(jì)數(shù)機(jī)制的智能指針 ObjectPtrT
字符串操作類(lèi):StrictMath,StringHelper(toUpperCase,toLowerCase,trim,equalsIgnoreCase
,endsWith,format),StringTokenizer
線程類(lèi):Thread(start,run,join)
使用以上的類(lèi)不用考慮 thread handle, event handle, socket handle 之類(lèi)的 handle
問(wèn)題,所有這些文
件已經(jīng)被封裝了。很好用,對(duì)不對(duì)?
不足之處在于沒(méi)有 GUI 類(lèi)。ANSI C++
中對(duì)于目錄等文件系統(tǒng)的處理功能較弱,這里面也沒(méi)有目錄處理類(lèi)。
另外 Socket 的 read(void * buf, size_t len) 不能設(shè)置
timeout,并且如果讀取數(shù)據(jù)個(gè)數(shù)小于 len 那么
read 函數(shù)將一直堵塞,不太好用,很可惜。實(shí)際的使用上面,可以考慮做一個(gè) Socket
子類(lèi),重寫(xiě) read() 函數(shù)。
vc71環(huán)境中編譯安裝
版本:log4cpp-0.3.5rc1.tar.gz
打開(kāi) msvc6 編譯即可
頭文件在 %log4cpp_root%/include\log4cpp
庫(kù)文件在
%log4cpp_root%/lib
頭文件添加方法如:
#i nclude 需要鏈接lib庫(kù)
5
Crypto++ 加/解密算法庫(kù)
---http://sourceforge.net/projects/cryptopp/
---http://www.eskimo.com/~weidai/cryptlib.html
---http://www.cryptopp.com
提供處理密碼,消息驗(yàn)證,單向hash,公匙加密系統(tǒng)等功能的免費(fèi)庫(kù)。
Crypto++ 是一個(gè)非常專(zhuān)業(yè)的C++
密碼學(xué)函式庫(kù),幾乎在密碼學(xué)里頭常見(jiàn)的演算法都可以在Crypto++
找到實(shí)作的函式,如:block 與stream ciphers,hash
functions,MACs,random number generators,
public key
加密...等方法
vc71環(huán)境中編譯安裝
版本:cryptopp521.zip
直接通過(guò) cryptest.dsw
相關(guān)的庫(kù)
頭文件在 %cryptopp_root%
庫(kù)文件在
%cryptopp_root%/lib
頭文件添加方法如:
#i nclude <*.h>
需要鏈接lib庫(kù)
6 ACE
------http://www.cs.wustl.edu/~schmidt/ACE.html
C+
+庫(kù)的代表,超重量級(jí)的網(wǎng)絡(luò)通信開(kāi)發(fā)框架。ACE自適配通信環(huán)境(Adaptive Communication
Environment)
是可以自由使用、開(kāi)放源代碼的面向?qū)ο罂蚣埽谄渲袑?shí)現(xiàn)了許多用于并發(fā)通信軟件的核心模式。ACE提供了一組
豐富的可復(fù)用C++
包裝外觀(Wrapper
Facade)和框架組件,可跨越多種平臺(tái)完成通用的通信軟件任務(wù),其中包括:
事件多路分離和事件處理器分派、信號(hào)處理、服務(wù)初始化、進(jìn)程間通信、共享內(nèi)存管理、消息路由、分布式服務(wù)動(dòng)
態(tài)(重)配置、并發(fā)執(zhí)行和同步,等等。
7.
CppUnit
-------http://sourceforge.net/projects/cppuint/
一個(gè)c++的單元測(cè)試框架,可以通過(guò)派生測(cè)試類(lèi)的方式,定制具體的測(cè)試方案。xUnit家族的一員,
從JUnit移植而來(lái),JUnit是Java語(yǔ)言的單元測(cè)試框架。
vc71環(huán)境中編譯安裝
版本:cppunit-1.10.2.tar.gz
直接通過(guò) CppUnitLibraries.dsw 編譯相關(guān)的庫(kù)
頭文件在
%cppunit_root%/cppunit
庫(kù)文件在 %cppunit_root%/lib
頭文件添加方法如:
#i nclude
需要鏈接lib庫(kù)
8 Loki
-----http://moderncppdesign.com
-----http://sourceforge.net/projects/loki-lib/
-----http://sourceforge.net/projects/loki-exp/
其實(shí)可和Boost一起介紹它,一個(gè)實(shí)驗(yàn)性質(zhì)的庫(kù)。作者在loki中把C++模板的功能發(fā)
揮到了極致。并且嘗試把類(lèi)似設(shè)計(jì)模式這樣思想層面的東西通過(guò)庫(kù)來(lái)提供。同時(shí)還提供
了智能指針這樣比較實(shí)用的功能。
該庫(kù)系模板庫(kù),庫(kù)本身無(wú)需編譯,在你的工程文件中 引用頭文件就可以使用,
如果 你直接或間接使用了small object,那你需要在你的工程文件 加上
SmallObj.cpp
如果 你直接或間接使用了Singletons,那你需要在你的工程文件 加上
Singleton.cpp
-----------------------------------------------------------------------------------------
學(xué)術(shù)性的C++庫(kù):
-----------------------------------------------------------------------------------------
1
FC++: The Functional C++ Library
--------http://www.cc.gatech.edu/~yannis/fc++/
這個(gè)庫(kù)提供了一些函數(shù)式語(yǔ)言中才有的要素。屬于用庫(kù)來(lái)擴(kuò)充語(yǔ)言的一個(gè)代表作。如果想要在OOP之外尋找另
一分的樂(lè)趣,可以去看看函數(shù)式程序設(shè)計(jì)的世界。大師Peter
Norvig在 “Teach Yourself Programming in
Ten
Years”一文中就將函數(shù)式語(yǔ)言列為至少應(yīng)當(dāng)學(xué)習(xí)的6類(lèi)編程語(yǔ)言之一。
當(dāng)前版本:FC++.1.5.zip
模板庫(kù),在實(shí)際工程中
,加上要用的頭文件 就可以編譯。
2 CGAL
-----http://www.cgal.org
Computational Geometry Algorithms
Library的目的是把在計(jì)算幾何方面的大部分重要的解決方案和方
法以C++庫(kù)的形式提供給工業(yè)和學(xué)術(shù)界的用戶。
當(dāng)前版本:CGAL-3.1.zip
這是一個(gè)已編譯的版本,當(dāng)然也包括完整的源碼
頭文件在
%CGAL_root%/include/CGAL
庫(kù)文件在 %CGAL_root%/lib/msvc7
頭文件添加方法如:
#i
nclude
需要鏈接lib庫(kù)
-----------------------------------------------------------------------------------------
其它目前我感覺(jué)還不是很爽的C++庫(kù):
-----------------------------------------------------------------------------------------
1
Doxygen
------http://sourceforge.net/projects/doxygen/
------http://www.stack.nl/~dimitri/doxygen/
注釋文檔生成工具,較之Doc++功能更為齊全,可以生成包括HTML、PDF、RTF在內(nèi)的多種格式的文檔,
并有GUI界面,除了支持c/c++語(yǔ)言外,還支持IDL、java、PHP、c#等。
2、
QT(windows版要付錢(qián))
-------http://www.trolltech.com/
-------http://www.qiliang.net/qt.html
Qt是Trolltech公司的一個(gè)多平臺(tái)的C++圖形用戶界面應(yīng)用程序框架。它提供給應(yīng)用程序開(kāi)發(fā)者建立藝術(shù)級(jí)的圖形
用戶界面所需的所用功能。Qt是完全面向?qū)ο蟮暮苋菀讛U(kuò)展,并且允許真正地組件編程。自從1996年早些時(shí)候,
Qt進(jìn)入商業(yè)領(lǐng)域,它已經(jīng)成為全世界范圍內(nèi)數(shù)千種成功的應(yīng)用程序的基礎(chǔ)。Qt也是流行的Linux桌面環(huán)境KDE
的基礎(chǔ),同時(shí)它還支持Windows、Macintosh、Unix/X11等多種平臺(tái)。
3、Fox
---------http://www.fox-toolkit.org/
開(kāi)放源代碼的GUI庫(kù)。作者從自己親身的開(kāi)發(fā)經(jīng)驗(yàn)中得出了一個(gè)理想的GUI庫(kù)應(yīng)該是什么樣子的感受
出發(fā),從而開(kāi)始了對(duì)這個(gè)庫(kù)的開(kāi)發(fā)。有興趣的可以嘗試一下。
4
xml4c
------http://www.alphaworks.ibm.com/tech/xml4c
IBM的XML
Parser,用c++語(yǔ)言寫(xiě)就,功能超級(jí)強(qiáng)大。號(hào)稱(chēng)支持多達(dá)100種字符編碼,能夠支持中文,
適合于大規(guī)模的xml應(yīng)用。若只是很小范圍的應(yīng)用,則非最佳選擇,畢竟,你需要“背負(fù)”約12M左右的
dll的沉重負(fù)擔(dān)
5
Xerces c++
-------http://xml.apache.org/xerces-c
Apache的XML項(xiàng)目,同樣是c++
實(shí)現(xiàn),來(lái)源于IBM的xml4c,因此編程接口也是和xml4c一致的。但是
目前只支持少數(shù)的字符編碼,如ASCII,UTF-8,UTF-16等,不能處理包含中文字符的XML文檔。
Xerces-C++ 是一個(gè)非常健壯的XML解析器,它提供了驗(yàn)證,以及SAX和DOM API。XML驗(yàn)證在文檔類(lèi)型定
義(Document Type
Definition,DTD)方面有很好的支持,并且在2001年12月增加了支持W3C XML Schema
的基本完整的開(kāi)放標(biāo)準(zhǔn)。
6
XMLBooster
-------http://www.xmlbooster.com/
這個(gè)庫(kù)通過(guò)產(chǎn)生特制的parser的辦法極大的提高了XML解析的速度,并且能夠產(chǎn)生相應(yīng)的GUI程序
來(lái)修改這個(gè)parser。在DOM和SAX兩大主流XML解析辦法之外提供了另外一個(gè)可行的解決方案。
-----------------------------------------------------------------------------------------
C++開(kāi)發(fā)環(huán)境(Win平臺(tái)下除了
Visual C++ 和 Borland
C++以外的):
-----------------------------------------------------------------------------------------
1.
Cygwin (Windows下的一個(gè)Unix仿真環(huán)境)
這個(gè)Cygwin的一部分是GCC的另外一個(gè)Windows移植版本,Cygwin是Windows下的一個(gè)Unix仿真環(huán)境。
嚴(yán)格的說(shuō)是模擬GNU的環(huán)境,這也就是"Gnu's
Not Unix"要表達(dá)的意思。
至Cygwin的網(wǎng)站http://www.cygwin.com/下載安裝程式setup.exe,可直接點(diǎn)選執(zhí)行或先行下載
至個(gè)人電腦後再執(zhí)行。
目前我已經(jīng)下載到本地了,直接安裝即可。
2. MinGW (GCC的一個(gè)Windows移植版本)
1)http://sourceforge.net/projects/mingw 直接訪問(wèn)的,點(diǎn)擊
Files,然后下載以下文
件:MinGW-3.1.0-1.exe, mingw32-make-3.80.0-3.exe。
安裝MinGW 到
C:/MinGW 目錄下,然后安裝 mingw32-make 到 C:/MinGW 下,通過(guò)瀏覽器
到 C:/MinGW/bin 下,將
mingw32-make.exe 改名或者另外復(fù)制為 make.exe。
(以上的設(shè)置已經(jīng)足夠。不過(guò)為了求新,我是同時(shí)下載了
gcc-core-3.4.2-20040916-1.tar.gz,
mingw-runtime-3.5.tar.gz 和
w32api-3.1.tar.gz,將它們直接解壓到 C:/MinGW
下更新舊的
文件。不過(guò)這對(duì)這篇文章本身沒(méi)有任何影響。新舊兩種配置我都測(cè)試過(guò)。)
安裝次序:
MinGW-3.1.0-1.exe
mingw32-make-3.80.0-3.exe
gcc-core-3.4.2-20040916-1.tar.gz
mingw-runtime-3.5.tar.gz
w32api-3.1.tar.gz
gdb-5.2.1-1.exe
mingw-utils-0.3.tar.gz
binutils-2.15.91-20040904-1.tar.gz
3)準(zhǔn)備MinGW
用戶開(kāi)發(fā)的命令行環(huán)境(一個(gè)批處理)
如: mingw.bat
@rem
--------------------------------------
@SET
MINGW_ROOT=D:\Mingw
@rem
@echo Setting environment for using
Mingw.
@rem
@set PATH=%MINGW_ROOT%\BIN;%PATH%
@set
INCLUDE=%MINGW_ROOT%\INCLUDE;%MINGW_ROOT%\INCLUDE\c++\3.2.3;%MINGW_ROOT%\include\c++\3.2.3\mingw32;%MINGW_ROOT%\include\c++\3.2.3\backward;%INCLUDE%
@set
LIB=MINGW_ROOT\LIB;%LIB%
@rem
----------------------------------------
3. Dev C++ (一個(gè)C/C++
的集成開(kāi)發(fā)環(huán)境)
GCC是一個(gè)很好的編譯器。在Windows上的C++編譯器一直和標(biāo)準(zhǔn)有著一段距離的時(shí)候,GCC就是一個(gè)
讓W(xué)indows下開(kāi)發(fā)者流口水的編譯器。Dev-C++就是能夠讓GCC跑在Windows下的工具,作為集成開(kāi)發(fā)環(huán)
境,還提供了同專(zhuān)業(yè)IDE相媲美的語(yǔ)法高亮,代碼提示,調(diào)試等功能。由于使用Delphi開(kāi)發(fā),占用內(nèi)存
少,速度很快,比較適合輕量級(jí)的學(xué)習(xí)和使用。
可以使用 MinGW-GCC 作為它的編譯器
4
Eclipse-CDT
游戲開(kāi)發(fā)
Audio/Video 3D C++ Programming
Library
------http://www.galacticasoftware.com/products/av/
------http://sourceforge.net/projects/av3d/
***3D是一個(gè)跨平臺(tái),高性能的C++庫(kù)。主要的特性是提供3D圖形,聲效支持(SB,以及S3M),控制接口(鍵盤(pán),鼠標(biāo)和遙感),XMS。
KlayGE
------http://home.g365.net/enginedev/
------http://sourceforge.net/projects/klayge/
國(guó)內(nèi)游戲開(kāi)發(fā)高手自己用C++開(kāi)發(fā)的一個(gè)開(kāi)放源代碼、跨平臺(tái)的游戲引擎。KlayGE是一個(gè)開(kāi)放源代碼、跨平臺(tái)的游戲引擎,并使
用Python作腳本語(yǔ)言。KlayGE在LGPL協(xié)議下發(fā)行。感謝龔敏敏先生為中國(guó)游戲開(kāi)發(fā)事業(yè)所做出的貢獻(xiàn)。
OGRE
------http://www.ogre3d.org
------http://www.ogre3d.org/docs/manual/
------http://sourceforge.net/projects/ogre
OGRE(面向?qū)ο蟮膱D形渲染引擎)是用C++開(kāi)發(fā)的,使用靈活的面向?qū)ο?D引擎。它的目的是讓開(kāi)發(fā)者能更方便和直接地開(kāi)發(fā)
基于3D硬件設(shè)備的應(yīng)用程序或游戲。引擎中的類(lèi)庫(kù)對(duì)更底層的系統(tǒng)庫(kù)(如:Direct3D和OpenGL)的全部使用細(xì)節(jié)進(jìn)行了抽象,并提供了基于現(xiàn)實(shí)世界對(duì)象的接口和其它類(lèi)。