VC++ .NET 2003 –安裝和使用Boost 1.30和Blitz++0.6
小氣的神
2003-05-01
Article Type: In-Depth?
難度等級(jí): 7/9???????
版本: 1.82
“C++ increasingly means Visual C++”???????
- Scott Meyers
< 文章的長度把握不是太好,被 CSDN 的系統(tǒng)裁減,所以接著再來 J >
?
接下來,我們需要編寫一些小的應(yīng)用測試一下,簡單一點(diǎn)的
lexical_case
:
取自
http://www.emaki.minidns.net/Programming/tools/Boost/
的例子
使用下面的命令方式。
D:\boost2> cl /GX /MT /GR /EHsc lCase.cpp
?
?
復(fù)雜一點(diǎn)的多線程應(yīng)用使用下面的命令方式:
thread.cpp
取自
C:\boost_1_30_0\libs\thread\example\ thread.cpp
D: \Boost2>cl? /GX /MT /EHsc thread.cpp /link? C:\boost_1_30_0\lib
s\thread\build\bin\boost_thread.dll\vc7\debug\runtime-link-static\threading-mult
i\boost_threadd.lib
你可以在這里
download
上述的
Sample
(109K)
,當(dāng)然在測試的過程中也有上面我說的
VC7.1
無法編譯過去的問題:
比如取自
http://www.emaki.minidns.net/Programming/tools/Boost/
的
format
例子
還有一些例子是無法編譯或是有讓人難以理解的警告。
具體記錄在下面的兩個(gè)頁面中,你可以具體查看一下,不僅
VC7,
甚至還有更多的其他
C++
編譯器的情況。
?
?
http://boost.sourceforge.net/regression-logs/cs-vc71beta-links.html
http://boost.sourceforge.net/regression-logs/cs-vc71beta-Version_1_30_0.html
http://boost.sourceforge.net/regression-logs/
接下來,還有接下來了嗎?回頭看看我們的已經(jīng)走了很遠(yuǎn)了,但愿你用同樣的步伐在和我一起前進(jìn),最后我們來一起看一下 Biltz++ 吧,我已經(jīng)沒有力氣在暢情漪動(dòng)的介紹有關(guān) Biltz 的有關(guān)故事和歷史了。必須承認(rèn)這些類庫都是老字號(hào)的招牌類庫,是 C++ 社團(tuán)的輝煌、是激情創(chuàng)造力的溢出,就這些足以讓 .NET 學(xué)一陣跟一程了 .NET 加油!
?
Download :最新版本 0.6 blitz-0.6.tar.gz? (996K)
http://oonumerics.org/blitz/download/
http://sourceforge.net/project/showfiles.php?group_id=63961
看到 http://oonumerics.org/blitz/platforms/ 上的描述差點(diǎn)昏倒, Visual C++ 排在了 Unsupported platforms 之中,甚至連第二等的 Plausible (but not actively supported) platforms 都排不上,這意味著什么,也就是你解壓 Blitz-06.tar.gz 之后,根本不會(huì)在其中找到有關(guān) Visual C++ 的編譯文件和任何有關(guān)的信息。
?
這就是
ISO/ANSI C++
的厲害了,對(duì)于我這樣一個(gè)慕名而來,之前從未使用過任何其它版本的
Blitz++
的
Visual Studio.NET
用戶來說,這有些困難了,所以這時(shí)候講
VC++.NET
強(qiáng)大優(yōu)秀,一點(diǎn)用都沒有,我們需要的是資源是信息,而不是手上拿著史前最強(qiáng)大的編譯器。還好有網(wǎng)絡(luò),還好有
Google
,
Google
的偉大之處在于它能給你無比自信的不知所措尋找一個(gè)釋放的臨界,將你所有可能和不可能的期許化成無數(shù)個(gè)上一頁和下一頁,不要管它有多少,重要的是你相信你在點(diǎn)擊某一個(gè)鏈接之后找到你所需要的
J
我想你也找得到,因?yàn)槿澜缢杏懻摰?/span>
BlitZ++
的人都在這里
http://www.oonumerics.org/MailArchives/blitz-support/
,除去不是對(duì)
Windows
平臺(tái)感興趣的,真正討論的不會(huì)有超過
20
人,你需要找到一個(gè)叫
Julian C. Cummings
的人。
直接講我的步驟吧,互聯(lián)網(wǎng)上的故事先放在一邊吧
J
?
用法:首先去
download
Blitz-VS.NET2003.zip
(1.1M)
?????? 解壓這個(gè)文件到根目錄,并且我假設(shè)你的 Blitz++ Library 是安裝在 C:\Blitz_0_6
?
如果 Blitz++ 安裝目錄不是 C:\Blitz_0_6 你需要手工的調(diào)整,設(shè)置 VC.NET 項(xiàng)目文件中的 Additional Include Directories 為你的 Blitz++ 安裝目錄 (cl 的 /I 參數(shù) ) ,之后 Remove C++ 源文件中 globals.cpp ,重新加入你安裝目錄 \src 目錄中的這個(gè)文件,然后編譯 Solution. 另外如果你的機(jī)器象我之前一樣安裝了 STLPort 請?jiān)?/span> VS.NET 中調(diào)整它的 INCLUDE 順序,將其放在默認(rèn)的 STL 庫后面。象下面這樣,如果編譯成功會(huì)在 \Blitz-VS.NET\Blitz-Library\blitz\Debug\ 目錄下產(chǎn)生一個(gè) blitz.lib 。
?
?
這個(gè)庫文件也包括你 Download 的 1.1M Zip 文件里,這樣你可以不自己編譯也能使用 Blitz++ Library.
?
?
完成這一部分之后,可以開始使用或測試一下, Blitz++ 提供了一個(gè) Test Suite 專門測試其功能和編譯器的情況,在 C:\Blitz-VS.NET\Blitz-Testsuite\ 下面有一個(gè) Blitz-Testsuite.sln ,打開這個(gè) Solution 里面有 45 個(gè) VC Project ,專門用來運(yùn)行 C:\Blitz_0_6\testsuite 中的 .cpp ,你可以逐個(gè)編譯和運(yùn)行一下,網(wǎng)上說其中有 4 個(gè)有問題,而我運(yùn)行完好像只發(fā)現(xiàn)一個(gè)。由于編譯后的文件太大,所以 Download 的 Zip 文件中只帶了兩個(gè),一個(gè)是 Include 使用 Blitz++ 的例子,一個(gè)是需要使用到我們編譯的 blitz.lib 的例子。總的來說,效果非常的不錯(cuò)。
后記:
?????? 我只能從數(shù)據(jù)上 (81%-87%-98%) 知道以前的 VC++ 的性能和情況,特別是有關(guān) ISO C++ 標(biāo)準(zhǔn)的狀況,從我的經(jīng)歷看來, Visual C++.NET 2003 兼容程度非常的高,而且速度也非常的快,編譯完成整個(gè)四個(gè)類庫和上網(wǎng)尋找資料,我總共花了兩天時(shí)間(算起來和我寫并且發(fā)布這兩篇文章的時(shí)間差不多),兩天期間我還抽空也編譯了 PETE 、 MTL 、 POOMA 這樣小一點(diǎn)不太有名的類庫,發(fā)現(xiàn)在 Visual C++.NET 2003 都可以編譯和使用。
?
事實(shí)上,目前很難找到,在一個(gè)平臺(tái),不用安裝什么其他的庫(編譯所有的類庫我沒有安裝什么 Java Runtime 、 Perl 、 Cyg-Win32 等等),第三方軟件而編譯和使用這么多頂尖類庫的編譯器。另外我們還沒有考察 Visual C++.NET 對(duì) .NET Framework 的支持部分,所以前面我對(duì)它用了“史前最強(qiáng)大的編譯器”,豪華而且也很方便,我想如果今天 Visual C++.NET 是一個(gè) 25 歲的有志青年,我想也許他的下一目標(biāo)應(yīng)該是 Unix 或 Linux 平臺(tái)。 ( 什么那就是 Visual C++.NET 2004? ?--New features for the UNIX and Linux developer and Most ANSI/ISO conformant C++.? Strong support for standard C++ in managed code , 啊,忘記忘記 ) 不管怎樣,你看得出我非常的喜歡這款 C++ 編譯器,況且它還和其它的 .NET 語言 C#,VB.NET 在一起,即來之則用之,有時(shí)你是不得不用,有時(shí)你是因?yàn)橄矚g所以用它 J
好了,最后附上一些 STL 的鏈接和資源,也許你會(huì)奇怪,為什么會(huì)加這個(gè)在這里?在第一篇的文章中我曾講過寫這個(gè)文章的原因,其實(shí)有一個(gè)很私人的原因,沒有講到,事情的最初是我想收集一些 STL 的資料,我和我的客戶都需要,不知道他們拿它作什么,而我是準(zhǔn)備鞏固和更深的學(xué)習(xí)一下 STL ,更全面的掌握一些概念和應(yīng)用,你知道 2004 的 VS.NET 中的 .NET Framework 會(huì)帶有模板和泛類編程,我說過我是一個(gè) .NET 迷 J 。世界上的事情就是這么奇妙,一個(gè)簡單的念頭最后演化成了用 Visual C++.NET 編譯 C++ 社團(tuán)的四大名庫。如果沒有什么冒犯和輕率之舉,我想整個(gè)的過程是一次非常有趣和快樂的體驗(yàn)。祝你編程快樂,五一快樂。
STL
http://www.cs.rpi.edu/~musser/stl-book/
Effective STL
http://www.bdsoft.com/resources/estlcode.html
Effective STL -Example Source Code
http://www.bdsoft.com/resources.html
http://www.bdsoft.com/tools/stlfilt.html
STLFilt( free) An STL Error Message Decryptor for C++
http://www.oonumerics.org/blitz/download/
Bitz library
http://www.cs.auc.dk/%7Enesotto/init/
?
Pretty Good Initialization Library-C++ container initialization made easy
http://www.aristeia.com/right_frames.html
?Scott Meyers website
http://www.highprogrammer.com/alan/windev/visualstudio.html
Microsoft Visual C++ Tips and Tricks
http://www.xraylith.wisc.edu/~khan/software/stl/os_examples/examples.html
ObjectSpace STL<ToolKit> examples
http://www.infosys.tuwien.ac.at/Research/Component/tutorial/prwmain.htm
The Standard Template Library Tutorial
http://www.xraylith.wisc.edu/~khan/software/stl/os_examples/examples.html
ObjectSpace STL<ToolKit> examples ftp://butler.hpl.hp.com/stl/examples.zip
http://www.mathcs.sjsu.edu/faculty/horstman/safestl.html
?? Safe STL
http://www.synesis.com.au/winstl/libraries.html Windows Library STL /
WinSTL
http://stlport.org/
?STL Port ?
http://wwww.stlport.org
http://www.glenmccl.com/stl_cmp.htm
STL Start (1-8)
http://www.c-plusplus.de/stl.htm
STL
de
http://www.yrl.co.uk/~phil/stl/stl.htmlx
Phil Ottewell's STL Tutorial
http://www.research.att.com/~bs/C++.html
?
Bjarne Stroustrup's C++ Link ?http://www.research.att.com/~bs/homepage.html
View Template Library(VTL)
http://www.zeta.org.au/~jon/STL/views/doc/views.html
http://www.boost.org/
Boost C++ Libraries
http://www.ddj.com/documents/s=938/ddj9708a/9708a.htm
The SGI Standard Template Library
http://www.cs.brown.edu/people/jak/proglang/cpp/stltut/tut.html
A modest STL tutorial
http://www.medini.org/stl/
? STL Links & Quick Reference
http://www.stlbloggers.com/
STL bloggers
http://www.codeproject.com/vcpp/stl/
codeproject STL
http://users.libero.it/g.govi/index.html STL for eMbedded Visual C++
- Windows CE
http://www.cs.bham.ac.uk/resources/ums/SGI-STL/
Standard Template Library Programmer's Guide
http://www.cs.bham.ac.uk/resources/ums/SGI-STL/download.html
SGI_STL Downlaod
http://www.s34.co.jp/cpptechdoc/reference/stl_samples/
Stl Sample S34 JP
http://www.jamesd.demon.co.uk/csc/faq.html
comp.std.c++ frequently asked questions
http://www.lafstern.org/matt/
? Generic Programming and the STL (book)
http://prdownloads.sourceforge.net/dcplusplus
dc++ (
應(yīng)用
STLPort)
http://www.cs.wustl.edu/~schmidt/patterns.html
Design Patterns, Pattern Languages, and Frameworks (ACE)
http://deuce.doc.wustl.edu/Download.html
?ACE and TAO Download
http://www.cs.wustl.edu/~schmidt/ACE.html
ACE Homepage
http://www.noasia.net/taowen/
c++
網(wǎng)站
Boost
中的泛型編程技術(shù)
(
小品文
)
...
http://www.acl.lanl.gov/pooma/download.html
POOMA: Parallel Object-Oriented Methods and Applications
http://www.techxhome.com/products/optsolve/
The OptSolve++ libraries provide a convenient and extensible interface for rapid nonlinear optimization or root-finding with user-specified functions.
http://www.techxhome.com/products/optsolve/registrationpage.html
OptSolve Downlaod
http://www.acl.lanl.gov/pete/
PETE uses C++ recursively-defined templates for transforming certain kinds of C++ statements into other
http://www.osl.iu.edu/research/mtl/download.php3 The Matrix Template Library Downlaod
?
?
特別:
本文使用的
Visual Studio.NET Version 7.1.2292, .NET Framework 1.1.4322
是
Visual Studio.NET Final Bate
的版本還不是最終的版本,其結(jié)果不知是否和正式版本下有不同。
cl.exe Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.10.2292 for 80x86
本文原創(chuàng),
CSDN
署名首發(fā),所有文字和圖片版權(quán)所有。未經(jīng)授權(quán)請勿傳播、轉(zhuǎn)載或改編。
如果有問題或建議,
請發(fā)電子郵件給
new2001@msn.com
歡迎訪問我的 WebLog : www.dotNETTools.org/weblog/weblog.html
posted on 2006-07-01 13:29 楊粼波 閱讀(6961) 評(píng)論(0) 編輯 收藏 引用