boost库教程?boost的静态库怎么使用?


boost库教程?boost的静态库怎么使用?

文章插图
本篇文章给大家谈谈boost库,以及boost库教程对应的知识点 , 希望对各位有所帮助 , 不要忘了收藏本站!
内容导航:
  • c++标准库boost的作用
  • boost的静态库怎么使用
  • 如何在vs2015下配置boost库
  • 如何使用boost库
  • 如何调用boost库
  • 如何在ubuntu下配置qtcreator使用boost库
Q1:c++标准库boost的作用Boost库是为C++语言标准库提供扩展的一些C++程序库的总称 。
Boost库由Boost社区组织开发、维护 。其目的是为C++程序员提供免费、同行审查的、可移植的程序库 。Boost库可以与C++标准库完美共同工作 , 并且为其提供扩展功能 。Boost库使用Boost License来授权使用 , 根据该协议 , 商业的非商业的使用都是允许并鼓励的 。
Q2:boost的静态库怎么使用当编译完boost库后 , 静态库是放在库的stage/lib目录下 。
要使用的话 , 就在bashrc里面加上BOOST_ROOT=xxx/boost_1_51_0 , Boost_LIBRARYDIR=${BOOST_ROOT}/stage/lib 。
编译程序的时候要指定boost的头文件和库的路径 , 如;
g++ demo.cpp -I$BOOST_ROOT -L$Boost_LIBRARYDIR -lboostxxx -o demo
Q3:如何在vs2015下配置boost库1、首先到boost官网去下载最新的版本的boost库:
2、解压文件 , 在命令提示符中打开到boost库的根目录下:
双击bootstrap.bat文件 , 生成bjam.exe , 执行以下命令:
bjam --toolset=msvc --build-type=complete stage
或者直接双击bjam.exe.
等待程序编译完成 , 大约要两个小时左右 , 会在boost根目录下生成bin.v2和stage两个文件夹 , 其中bin.v2下是生成的中间文件 , 大小在2.7G左右 , 可以直接删除 。stage下才是生成的dll和lib文件 。
3、打开vs:
视图->属性管理器->当前项目->Debug|Win32->Microsoft.Cpp.Win32.user双击
在弹出的属性对话框中:
通用属性->VC++目录:"包含目录": boost的根目录 , 例: D:\Visual Stdio 2013\lipeng\boost\boost_1_58_0
"库目录": stage下的链接库目录 , 例:D:\Visual Stdio 2013\lipeng\boost\boost_1_58_0\stage\lib
通用属性->链接器->常规:"附加库目录":同上面的"库目录" , 例:D:\Visual Stdio 2013\lipeng\boost\boost_1_58_0\stage\lib至此环境就配置好了测试一下 。
Q4:如何使用boost库1. 编译
1.2. VS2005编译boost_1_55_0
1.2.1. 使用vs2005的命令行执行:...\boost_1_55_0\bootstrap.bat
1.2.2. 编译动态库
bjam install stage --toolset=msvc-8.0 --stagedir="C:\Boost\boost_vc_80" link=shared runtime-link=shared threading=multi debug release
1.2.3. 编译静态库
bjam install stage --toolset=msvc-8.0 --stagedir="D:\Boost\boost_vc_80" link=static runtime-link=static threading=multi debug release
各种参数详解:
stage:表示只生成库(dll和lib)
install:还会生出包含的头文件
--toolset=msvc-8.0:指定编译器版本 , 8.0为vs2005 , 其他VS类推 。
--stagedir:指定编译后存放的目录
link:生成动态库/静态库 。动态库(shared) , 静态库(static)
runtime-link:动态/静态C/C++运行时库 , 同样有shared和static两种组合方式 。这样共有4种组合方式 , 个人根据自己需要选择 。
threading:单/多线程 , 一般都是多线程程序 , 当然multi了 。
debug/release:编译版本 , 一般2个都需要 。
2. 使用
使用静态库:
[cpp] view plain copy print?
//#define BOOST_ALL_DYN_LINK
#include <boost/bind.hpp>
#include <boost/asio.hpp>
#include <boost/thread/thread.hpp>
#include <boost/thread/mutex.hpp>
#include <boost/thread/condition.hpp>
使用静态库连接时 , 仅需要包含的lib为:
debug版:libboost_system-vc80-mt-gd-1_55.lib等一系列包含gd的库 。
release版本:libboost_system-vc80-mt-1_55.lib等一系列不包含gd的库 。
使用动态库链接:
[cpp] view plain copy print?
#define BOOST_ALL_DYN_LINK
#include <boost/bind.hpp>
#include <boost/asio.hpp>
#include <boost/thread/thread.hpp>
#include <boost/thread/mutex.hpp>
#include <boost/thread/condition.hpp>
使用动态库链接时 , 仅需要包含的lib为:
debug版:boost_system-vc80-mt-gd-1_55.lib , 同时在生成的exe加入boost_system-vc80-mt-gd-1_55.dll


推荐阅读