小氣的神
2003-05-01
?
Article Type: In-Depth?
難度等級:
7/9???????
版本:
1.82
?
“C++ increasingly means Visual C++”???????
- Scott Meyers
?
<
文章的長度把握不是太好,被
CSDN
的系統(tǒng)裁減,所以接著再來
J
>
?
?
接下來,我們需要編寫一些小的應(yīng)用測試一下,簡單一點的
lexical_case
:
取自
http://www.emaki.minidns.net/Programming/tools/Boost/
的例子
使用下面的命令方式。
D:\boost2> cl /GX /MT /GR /EHsc lCase.cpp
?
?
復(fù)雜一點的多線程應(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
例子
還有一些例子是無法編譯或是有讓人難以理解的警告。
具體記錄在下面的兩個頁面中,你可以具體查看一下,不僅
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)走了很遠了,但愿你用同樣的步伐在和我一起前進,最后我們來一起看一下
Biltz++
吧,我已經(jīng)沒有力氣在暢情漪動的介紹有關(guān)
Biltz
的有關(guān)故事和歷史了。必須承認(rèn)這些類庫都是老字號的招牌類庫,是
C++
社團的輝煌、是激情創(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/
上的描述差點昏倒,
Visual C++
排在了
Unsupported platforms
之中,甚至連第二等的
Plausible (but not actively supported) platforms
都排不上,這意味著什么,也就是你解壓
Blitz-06.tar.gz
之后,根本不會在其中找到有關(guān)
Visual C++
的編譯文件和任何有關(guān)的信息。
?
這就是
ISO/ANSI C++
的厲害了,對于我這樣一個慕名而來,之前從未使用過任何其它版本的
Blitz++
的
Visual Studio.NET
用戶來說,這有些困難了,所以這時候講
VC++.NET
強大優(yōu)秀,一點用都沒有,我們需要的是資源是信息,而不是手上拿著史前最強大的編譯器。還好有網(wǎng)絡(luò),還好有
Google
,
Google
的偉大之處在于它能給你無比自信的不知所措尋找一個釋放的臨界,將你所有可能和不可能的期許化成無數(shù)個上一頁和下一頁,不要管它有多少,重要的是你相信你在點擊某一個鏈接之后找到你所需要的
J
我想你也找得到,因為全世界所有討論的
BlitZ++
的人都在這里
http://www.oonumerics.org/MailArchives/blitz-support/
,除去不是對
Windows
平臺感興趣的,真正討論的不會有超過
20
人,你需要找到一個叫
Julian C. Cummings
的人。
直接講我的步驟吧,互聯(lián)網(wǎng)上的故事先放在一邊吧
J
?
用法:首先去
download
Blitz-VS.NET2003.zip
(1.1M)
??????
解壓這個文件到根目錄,并且我假設(shè)你的
Blitz++ Library
是安裝在
C:\Blitz_0_6
?
如果
Blitz++
安裝目錄不是
C:\Blitz_0_6
你需要手工的調(diào)整,設(shè)置
VC.NET
項目文件中的
Additional Include Directories
為你的
Blitz++
安裝目錄
(cl
的
/I
參數(shù)
)
,之后
Remove C++
源文件中
globals.cpp
,重新加入你安裝目錄
\src
目錄中的這個文件,然后編譯
Solution.
另外如果你的機器象我之前一樣安裝了
STLPort
請在
VS.NET
中調(diào)整它的
INCLUDE
順序,將其放在默認(rèn)的
STL
庫后面。象下面這樣,如果編譯成功會在
\Blitz-VS.NET\Blitz-Library\blitz\Debug\
目錄下產(chǎn)生一個
blitz.lib
。
?
?
這個庫文件也包括你
Download
的
1.1M Zip
文件里,這樣你可以不自己編譯也能使用
Blitz++ Library.
?
?
完成這一部分之后,可以開始使用或測試一下,
Blitz++
提供了一個
Test Suite
專門測試其功能和編譯器的情況,在
C:\Blitz-VS.NET\Blitz-Testsuite\
下面有一個
Blitz-Testsuite.sln
,打開這個
Solution
里面有
45
個
VC Project
,專門用來運行
C:\Blitz_0_6\testsuite
中的
.cpp
,你可以逐個編譯和運行一下,網(wǎng)上說其中有
4
個有問題,而我運行完好像只發(fā)現(xiàn)一個。由于編譯后的文件太大,所以
Download
的
Zip
文件中只帶了兩個,一個是
Include
使用
Blitz++
的例子,一個是需要使用到我們編譯的
blitz.lib
的例子??偟膩碚f,效果非常的不錯。
?
?
后記:
??????
我只能從數(shù)據(jù)上
(81%-87%-98%)
知道以前的
VC++
的性能和情況,特別是有關(guān)
ISO C++
標(biāo)準(zhǔn)的狀況,從我的經(jīng)歷看來,
Visual C++.NET 2003
兼容程度非常的高,而且速度也非常的快,編譯完成整個四個類庫和上網(wǎng)尋找資料,我總共花了兩天時間(算起來和我寫并且發(fā)布這兩篇文章的時間差不多),兩天期間我還抽空也編譯了
PETE
、
MTL
、
POOMA
這樣小一點不太有名的類庫,發(fā)現(xiàn)在
Visual C++.NET 2003
都可以編譯和使用。
?
事實上,目前很難找到,在一個平臺,不用安裝什么其他的庫(編譯所有的類庫我沒有安裝什么
Java Runtime
、
Perl
、
Cyg-Win32
等等),第三方軟件而編譯和使用這么多頂尖類庫的編譯器。另外我們還沒有考察
Visual C++.NET
對
.NET Framework
的支持部分,所以前面我對它用了“史前最強大的編譯器”,豪華而且也很方便,我想如果今天
Visual C++.NET
是一個
25
歲的有志青年,我想也許他的下一目標(biāo)應(yīng)該是
Unix
或
Linux
平臺。
(
什么那就是
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
在一起,即來之則用之,有時你是不得不用,有時你是因為喜歡所以用它
J
?
好了,最后附上一些
STL
的鏈接和資源,也許你會奇怪,為什么會加這個在這里?在第一篇的文章中我曾講過寫這個文章的原因,其實有一個很私人的原因,沒有講到,事情的最初是我想收集一些
STL
的資料,我和我的客戶都需要,不知道他們拿它作什么,而我是準(zhǔn)備鞏固和更深的學(xué)習(xí)一下
STL
,更全面的掌握一些概念和應(yīng)用,你知道
2004
的
VS.NET
中的
.NET Framework
會帶有模板和泛類編程,我說過我是一個
.NET
迷
J
。世界上的事情就是這么奇妙,一個簡單的念頭最后演化成了用
Visual C++.NET
編譯
C++
社團的四大名庫。如果沒有什么冒犯和輕率之舉,我想整個的過程是一次非常有趣和快樂的體驗。祝你編程快樂,五一快樂。
?
?
?
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
http://www.zib.de/weiser/vtl/
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
?