体验: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
上一篇,我介绍了在最新的Visual Studio.NET 2003下编译和使用STLport和Loki的情况。一切还算顺利,这篇文章介绍一下安装和使用Boost 和Blitz++的情况。
对于Boost已经到了大名鼎盛时期的非凡精神,到了初学者侧目拜视,伸手不能触的情形,粗一些描述你会在网上看到中国式的礼仪性评价-“一群牛人写的,一定有它牛的地方,我方小辈还是仔细学习研究吧!”,而官方的前景看来,Boost Library有可能加入到ISO C++ Standard中,我想这是对Boost所做贡献的肯定,也是整个C++社区的一件大事。而对于我来说,日常使用Boost的环境很少,几乎没有,你知道我是个.NET迷J ,其实到上一篇STLPort和Loki就已经够了。出于对一个新手的体谅,如果我有做得不对和欠缺之处请多提意见。
首先当然是去下载最新的版本,尽管这是众所周知的地方和问题,www.boost.org,最新的版本是1.3.0,下载下来大约10M,我将其解压缩到C:/boost_1_30_0
我的Visual Studio.NET 2003安装在下面的路径:
D:/Program Files/Microsoft Visual Studio .NET 2003/Vc7
之后是比较常见的两个步骤,一个是产生Jam.exe文件,然后是编译boost库,特别是著名的thread库。你会发现boost的许多库是都是通过Include方式来使用的,不用你事先编译,真正编译完成你会发现,如果你使用这些库,是需要自己进行编译的:
Date_time/filesystem/graph/python/regex/signals/test/thread
对应的应该是Date-Time Library/File System Library/Graph Library/Python Library/Regx Library/Signals Library/Test Library/Thread Library
所以往往说编译通过,只指编译这些库文件成功,但这并不意味Visual C++.NET 7.1就完全遵循Boost Library或可以完全使用Boost Library中的所有功能,这就是后面我会提到的,你会发现有些函数和模块在不同程度存在编译或是运行的问题。当然这不仅是VC7.1,几乎所有主流的C++编译器都会这样的问题,这个我们在后面会提到一些。
Boost Library库中存在这样的现象,有些库文件提供了mak文件,我们通过 nmake –f xxx.mak install 可以编译成功或使用它,比如regex/vc7.mak; regex/vc6-stlport.mak 但更多的类库必须通过