牵着老婆满街逛

严以律己,宽以待人. 三思而后行.
GMail/GTalk: yanglinbo#google.com;
MSN/Email: tx7do#yahoo.com.cn;
QQ: 3 0 3 3 9 6 9 2 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 署名首发,所有文字和图片版权所有。未经授权请勿传播、转载或改编。

如果有问题或建议, 请发电子邮件给 new2001@msn.com

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

 

posted on 2006-07-01 13:29 杨粼波 阅读(6942) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理