体验:VC++ .NET 2003 –安装和使用Boost 1.30和Blitz++0.6 之二

类别:VC语言 点击:0 评论:0 推荐:

体验: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

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++ (应用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署名首发,所有文字和图片版权所有。未经授权请勿传播、转载或改编。

如果有问题或建议,请发电子邮件给[email protected]

欢迎访问我的WebLog:www.dotNETTools.org/weblog/weblog.html

 

本文地址:http://com.8s8s.com/it/it1798.htm