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的安裝程序,該安裝程序會幫你下載相關的頭文件和動態庫。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章