`
public0821
  • 浏览: 238050 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

vc8 sp1环境下boost库的编译和使用

阅读更多

    首先到boost的网站上下载最新的BOOST源代码和编译好的JAM,地址:http://www.boost.org/users/download/ 。这里下载的是 boost-jam-3.1.17-1-ntx86.zipboost_1_37_0.tar.bz2

     1、解压boost和jam。

     2、cmd下进入boost1.37的解压目录,运行bjam  install,bjam会自动检测系统环境,默认编译VC版本的库,如果存在多个VC版本,会编译一个较高版本的库(我系统中有VC6和VC8,最后生成的是VC8版本的库)。


 

3、等待一段时间后,会在C盘根目录下生成一个boost文件夹,里面放着生成的头文件以及LIB和DLL文件。


 

4、将C:\Boost\include\boost-1_37目录下的boost文件夹拷贝到D:\Program Files\Microsoft Visual Studio 8\VC\include下面


 

5、将C:\Boost\lib下的dll文件拷贝到D:\Program Files\Microsoft Visual Studio 8\VC\bin。


 

5、将C:\Boost\lib下以boost开头并且带有boost版本号的lib文件拷贝到D:\Program Files\Microsoft Visual Studio 8\VC\lib,如boost_date_time-vc80-mt-1_37.lib。


 

     C:\Boost\lib下的lib文件有很多是 类似的,如关于graph的有boost_graph-mgw42-mt-1_37.lib、 boost_graph-mgw42-mt.lib、libboost_graph-mgw42-mt-1_37.lib、 libboost_graph-mgw42-mt.lib。其中前面带lib的是静态链接库,不带 lib 的是动态连接库,至于带boost版本号和不带版本号的有什么区别暂时还不清楚。


下面用VC8创建一个C++工程测试一下,代码如下

#include <iostream>  
#include <string>  
#include <boost/filesystem.hpp>  
namespace fs = boost::filesystem;  

/** 
* 输出C盘目录下的所有文件和目录名称 
*/  
int main()  
{  
	fs::path full_path("c:\\");  
	fs::directory_iterator end_iter;  
	for ( fs::directory_iterator dir_itr( full_path ); dir_itr != end_iter; ++dir_itr )  
	{  
		std::cout << dir_itr->path().filename() << std::endl;  
	}  
}  
 

 

    修改D:\Program Files\Microsoft Visual Studio 8\VC\include\boost\config\auto_link.hpp, 在文件的开始地方添加:

 

#define BOOST_DYN_LINK
 

    该文件中包含了自动连接lib文件的一些宏 利用这些宏 定义 可以在vc 8的预编译宏中控制连接不同的lib文件。本人在VC8中预定义宏的时候老是达不到想要的效果,所以干脆自己在源文件开始的地方定义需要的宏。通过了解此文件,你可以自己定义你自己的连接方式。http://blog.csdn.net/huangjack_1/archive/2008/10/14/3073575.aspx 这里有较详细的boost编译连接介绍。

    

    编译运行release版,  即可打印输出C盘根目录下的所有文件和文件夹。


    这篇文章只介绍release版本的编译和使用,debug版的编译我暂时没有找到比较简单的做法。我使用的比较笨的方式是运行bjam --build-type=complete install,然后隔段时间去看一下debug版编译完成没有,因为他首先生成的是release版,那么只要看C:\Boost\lib目录下debug版本的动态库是否和release版本的动态库数目一致,如果一致表示debug版编译完成,就可以强制终止bjam程序了。 使用debug版本的时候和release版本一样,将相应的文件拷贝过去就可以了。


    注意:编译debug版本的过程中会生成很多obj文件,大概要占用2到3G的空间。

 

     附件中是我自己编译好的debug版dll和lib,有需要的可以在这里下载,同时也可以到http://www.boostpro.com/products/free 下载其他版本boost的安装程序,该安装程序会帮你下载相关的头文件和动态库。

 

  • 大小: 13 KB
  • 大小: 23.1 KB
  • 大小: 45.7 KB
  • 大小: 53 KB
  • 大小: 52.8 KB
分享到:
评论

相关推荐

    如何用vc编译boost

    为了在Windows环境下使用Boost库,你需要先将其编译为与Visual C++(VC)兼容的静态库或动态库。以下是详细步骤: 1. **下载Boost** 访问官方网站`http://www.boost.org`,下载Boost的源码压缩包,例如`boost_1_38...

    boost库编译指南(VS2008+boost1.38)

    通过以上步骤,您可以成功地在Visual Studio 2008环境下编译并使用Boost 1.38库。此过程虽然较为复杂,但对于熟悉命令行操作的开发者来说并不困难。如果您在编译过程中遇到问题,可以尝试联系文档作者或查阅Boost...

    3rdParty_Win32Binaries_vc90sp1

    3rdParty_Win32Binaries_vc90sp1可能包含了OSG在Windows平台下编译和运行所必需的第三方库,尤其是与Visual C++ 9.0 Service Pack 1(vc90sp1)相关的部分。 在标签 "3rdParty" 中,我们可以理解为这些文件是OSG...

    如何配置VS2008下的ogre环境

    这有助于VS2008在编译时找到Ogre的头文件和库文件。 4. **配置VS2008**: - 打开VS2008,进入“工具”菜单,选择“选项”。 - 在弹出的对话框中,选择“项目和解决方案” -&gt; “VC++目录”。 - 在“包含文件”...

    VC6 SP6 Plus 2011/02/12 (Part 2 of 4)

    Visual C++ 6.0 便携特别版.by.cntrump 个人使用的感受: 1. 相当好用,主要是集成了Windows 2003的SDK,以前很多只能够用VS2008来编译的都可以用VC6来编译了。 2. 很好的支持了汇编 ...6. 集成 Boost C++ 库。

    VC6 SP6 Plus 2011/02/12 (Part 3 of 4)

    Visual C++ 6.0 便携特别版.by.cntrump 个人使用的感受: 1. 相当好用,主要是集成了Windows 2003的SDK,以前很多只能够用VS2008来编译的都可以用VC6来编译了。 2. 很好的支持了汇编 ...6. 集成 Boost C++ 库。

    osg安装包—支持vs2005 win7 xp

    这个安装包特别强调对VS2005的支持,意味着它包含所有必要的编译器配置和库文件,以便在Microsoft Visual Studio 2005环境下顺利编译和链接OSG项目。Visual Studio 2005是一款流行的IDE,对于C++开发者来说,它提供...

    VC6 SP6 Plus 2011/02/12 (Part 4 of 4)

    Visual C++ 6.0 便携特别版.by.cntrump 个人使用的感受: 1. 相当好用,主要是集成了Windows 2003的SDK,以前很多只能够用VS2008来编译的都可以用VC6来编译了。 2. 很好的支持了汇编 ...6. 集成 Boost C++ 库。

    OGRE+VS2008环境搭建

    这篇文章将详细介绍如何在Windows环境下,使用VS2008配置和构建OGRE开发环境。 首先,你需要下载以下软件: 1. **VS2008 Professional**: 安装基础的C++开发环境。 2. **VS2008 SP1**: Service Pack 1以获得最新的...

    Microsoft Visual C++ 2010 Runtime x86

    Microsoft Visual C++ 2010 Runtime x86(也称为VC++ 2010运行时库)就是这样一个关键组件,它为运行使用Visual C++ 2010编译器编译的32位应用程序提供了必要的环境。这个运行时库包含了C++标准库、CRT(C运行时)、...

Global site tag (gtag.js) - Google Analytics