boost库的使用问题总结

直到最近才使用大名鼎鼎的boost库,从什么都不知道到现在能用,也算经历了不少事情。使用boost首先就需要编译,然后才可以使用,编译就是第一个大问题,详细情况如下:

boost库版本:boost 1.48.0

目标平台:windows xp SP3,Linux Ubuntu 2.6.24-22-generic。

1. Windows XP SP3 和 VS2011 下的编译和使用

a.使用自启动程序bootstrap.bat

b. 在cmd中编译,具体的选项设置可以google 一下,注意的是在windows下variant=debug release都是可以的,也可以生成静态库或者动态库,可以选用stage 或者是 install。

c. 在VS2011中使用是,在VC工程属性中,将boost的目录和库目录加入。在使用静态库是没有什么问题,但是在使用动态链接库是必须定义BOOST_ALL_DYN_LINK,否则使用时会报错。

 

2.  Linux Ubuntu 2.6.24-22-generic,gcc-4.2.4

a. 使用bootstrap.sh 创建bjam

b. 在编译时注意,不要同时生成debug和release版本,否则会duplicate target这类的错误,其他的没有什么不同。

c. 在程序链接是一定要注意库的链接顺序。比例程序名为sample,那么编译时的命令如下:

g++ -I/path/to/boost/ -o sample sample.cpp xxx.cpp xx.h -L/path/to/boost/lib -lboost_xxx,其中boost_xxx中的xxx代表boost库的名字。这个时候的链接顺序一定要把-L

和-l命令和你的源程序文件放在一起,放在后面, 否则一定会有一大堆的undefined reference错误。

 

这就是我使用boost的时候,觉得应该注意的地方了。 

 

 
posted @ 2012-01-07 10:22  追风人  阅读(672)  评论(0编辑  收藏  举报