体验:VC++ .NET 2003 –安装和使用Boost 1.30和Blitz++0.6
小气的神
2003-05-01
Article Type: In-Depth
难度等级:7/9
版本:1.82
“C++ increasingly means Visual C++” - Scott Meyers
<文章的长度把握不是太好,被CSDN的系统裁减,所以接着再来J >
接下来,我们需要编写一些小的应用测试一下,简单一点的lexical_case:
取自http://www.emaki.minidns.net/Programming/tools/Boost/ 的例子
使用下面的命令方式。
D:\boost2> cl /GX /MT /GR /EHsc lCase.cpp
复杂一点的多线程应用使用下面的命令方式:
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) ,当然在测试的过程中也有上面我说的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/
接下来,还有接下来了吗?回头看看我们的已经走了很远了,但愿你用同样的步伐在和我一起前进,最后我们来一起看一下Biltz++吧,我已经没有力气在畅情漪动的介绍有关Biltz的有关故事和历史了。必须承认这些类库都是老字号的招牌类库,是C++社团的辉煌、是激情创造力的溢出,就这些足以让.NET学一阵跟一程了 .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之后,根本不会在其中找到有关Visual C++的编译文件和任何有关的信息。
这就是ISO/ANSI C++的厉害了,对于我这样一个慕名而来,之前从未使用过任何其它版本的Blitz++的Visual Studio.NET用户来说,这有些困难了,所以这时候讲VC++.NET强大优秀,一点用都没有,我们需要的是资源是信息,而不是手上拿着史前最强大的编译器。还好有网络,还好有Google,Google的伟大之处在于它能给你无比自信的不知所措寻找一个释放的临界,将你所有可能和不可能的期许化成无数个上一页和下一页,不要管它有多少,重要的是你相信你在点击某一个链接之后找到你所需要的J 我想你也找得到,因为全世界所有讨论的BlitZ++的人都在这里http://www.oonumerics.org/MailArchives/blitz-support/,除去不是对Windows平台感兴趣的,真正讨论的不会有超过20人,你需要找到一个叫Julian C. Cummings的人。
直接讲我的步骤吧,互联网上的故事先放在一边吧J
用法:首先去download Blitz-VS.NET2003.zip (1.1M)
解压这个文件到根目录,并且我假设你的Blitz++ Library 是安装在C:\Blitz_0_6
如果Blitz++安装目录不是C:\Blitz_0_6你需要手工的调整,设置VC.NET 项目文件中的Additional Include Directories为你的Blitz++安装目录(cl的 /I 参数),之后Remove C++源文件中globals.cpp,重新加入你安装目录\src目录中的这个文件,然后编译Solution. 另外如果你的机器象我之前一样安装了STLPort请在VS.NET中调整它的INCLUDE顺序,将其放在默认的STL库后面。象下面这样,如果编译成功会在\Blitz-VS.NET\Blitz-Library\blitz\Debug\目录下产生一个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,你可以逐个编译和运行一下,网上说其中有4个有问题,而我运行完好像只发现一个。由于编译后的文件太大,所以Download的Zip文件中只带了两个,一个是Include使用Blitz++的例子,一个是需要使用到我们编译的blitz.lib的例子。总的来说,效果非常的不错。
后记:
我只能从数据上(81%-87%-98%)知道以前的VC++的性能和情况,特别是有关ISO C++标准的状况,从我的经历看来,Visual C++.NET 2003兼容程度非常的高,而且速度也非常的快,编译完成整个四个类库和上网寻找资料,我总共花了两天时间(算起来和我写并且发布这两篇文章的时间差不多),两天期间我还抽空也编译了PETE、MTL、POOMA这样小一点不太有名的类库,发现在Visual C++.NET 2003都可以编译和使用。
事实上,目前很难找到,在一个平台,不用安装什么其他的库(编译所有的类库我没有安装什么Java Runtime、Perl、Cyg-Win32等等),第三方软件而编译和使用这么多顶尖类库的编译器。另外我们还没有考察Visual C++.NET对.NET Framework的支持部分,所以前面我对它用了“史前最强大的编译器”,豪华而且也很方便,我想如果今天Visual C++.NET是一个25岁的有志青年,我想也许他的下一目标应该是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的资料,我和我的客户都需要,不知道他们拿它作什么,而我是准备巩固和更深的学习一下STL,更全面的掌握一些概念和应用,你知道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
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++ (应用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++ 网站 Boost中的泛型编程技术(小品文)...
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的版本还不是最终的版本,其结果不知是否和正式版本下有不同。
cl.exe Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.10.2292 for 80x86
本文原创,CSDN署名首发,所有文字和图片版权所有。未经授权请勿传播、转载或改编。
如果有问题或建议,请发电子邮件给new2001@msn.com
欢迎访问我的WebLog:www.dotNETTools.org/weblog/weblog.html