一、说明

理论上,Qt和boost是同等级别的C++库,如果使用Qt,一般不会需要再用boost,但是偶尔也会有特殊情况,比如,第三方库依赖等等。本文主要介绍boost在windows Qt(MinGW)中的使用。

MinGW是一组工具集,其中使用的gcc编译器,这里就需要使用gcc编译boost。

二、配置gcc

(1)检查gcc环境变量

gcc工具位于Qt的安装目录下 ..\Qt\Qt5.5.1\Tools\mingw492_32\bin 目录内,一般安装Qt的时候,并不会把此目录添加到系统的环境变量中,这里加进去即可

添加完成后,使用

gcc -v

指令查看gcc版本信息

三、编译boost

本例使用 boost 1.61.0,其他版本类似,步骤如下:

(1)生成b2.exe和bjam.exe

进入到boost的根目录下,执行 bootstrap.bat,完成后,在根目录下生成4个文件:

b2.exebjam.exe 的功能是一样的,只是b2.exe是升级版本而已

(2)编译boost

在根目录下使用指令开始编译,编译时间较长

bjam --toolset=gcc --prefix=E:\boost_1_61_0 install

命令简介:

  1. toolset:指定编译器,可选:gcc/msvc/msvc-9.0等;
  2. build-dir:编译生成的中间文件路径,这里没有用,则默认在根目录下的bin.v2中,编译完成后,其中文件即无用;
  3. stage/install:stage表示只生成库(dll和lib),install表示还会生成头文件,头文件在根目录下有,其实无需再次生成
  4. without/with:指定编译哪些库
  5. stagedir/prefix:表示编译生成文件的路径,stage使用stagedir,install使用prefix
  6. debug/release:版本

(3)使用boost

编译完成后,在指定的目录下可以找到编译完成的文件,头文件和库文件的添加方式不做赘述

至此,boost可使用

测试代码:

#include <QCoreApplication>
#include <QDebug>
#include <boost/array.hpp>
using namespace boost; int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv); array<int, 3> arr = {0, 1, 2};
array<int, 3>::iterator iter = arr.begin();
for(; iter != arr.end(); ++iter)
{
qDebug()<<*iter;
} return a.exec();
}

最新文章

  1. 浅谈mybatis中的#和$的区别
  2. Reapter控件的特殊使用:使用EVAL调取asp:Repeater里面绑定的值来进行判断 根据从数据库获取的数据进行判断 ,进而显示成想要的内容
  3. Servlet跳转方式
  4. Android——GridView(显示文字)
  5. android139 360 黑名单 增删改查-数据库操作
  6. VM Depot 中国上的 Bitnami 镜像更新至 Ubuntu 14.04 LTS
  7. Hibernate五 HQL查询
  8. ios html5 长按复制文本
  9. 为何visua studio看不到C++项目的LOG?
  10. 深入理解urllib、urllib2及requests
  11. 与众不同 windows phone (15) - Media(媒体)之后台播放音频
  12. Linux查看硬盘使用时间等信息
  13. iOS微信运动 刷分
  14. sqlserver 重置标识列
  15. String、StringBuffer、与StringBuilder的区别
  16. [LeetCode] Maximum Length of Repeated Subarray 最长的重复子数组
  17. 与班尼特&#183;胡迪一起做生意 (HZUN-2261)
  18. Spring Boot:Thymeleaf 使用详解
  19. servlet-response学习笔记
  20. Vue -- 双向过滤器去除html标签

热门文章

  1. week7_简单题_C_水题_hdu_5578+F_贪心_hdu_5583
  2. Hadoop学习笔记(2)-HDFS的基本操作(Shell命令)
  3. R语言kohonen包主要函数介绍
  4. L10机器
  5. 机器学习新手项目之N-gram分词
  6. Jmeter--Mysql数据库压力测试
  7. 详解 stream流
  8. Java封装 概述
  9. 虚拟化KVM之概述(一)
  10. C++统一初始化语法(列表初始化)