一、boost是一个准标准库,相当于STL的延续和扩充,它的设计理念和STL比较接近,都是利用泛型让复用达到最大化。不过对比STL,boost更加实用。STL集中在算法部分,而boost包含了不少工具类,可以完成比较具体的工作。考虑到boost的强大,为此特地里做了windows下移植编译操作。

二、boost的移植

1.下载boost源码boost_1_62_0.7z,下载地址:https://sourceforge.NET/projects/boost/

其实也可以下载boos编译好的库和头文件,不过为了不必要的麻烦,建议手动编译

2.编译boost

1)解压boost到d盘,目录为boost_1_62

2)生成bjam工具:

进入D:\boost_1_62_0\boost_1_62_0\tools\build\src\engine目录下,执行build.sh gcc,在当前目录将会生成bin.ntx86文件夹,里面包含两个exe文件b2.exe,bjam.exe

3)将bin.ntx86\bjam.exe拷贝到boost1.37的解压目录D:\boost_1_62_0\boost_1_62_0中

4)进入路径D:\boost_1_62_0\boost_1_62_0,执行 bjam "toolset=gcc" install ,等待一段时间后,会在C盘根目录下生成一个boost文件夹,里面放着生成的头文件以及LIB和DLL文

5)将C:\Boost\include\boost-1_37目录下的boost文件夹拷贝到C:\MinGW\include下面

6)将C:\Boost\lib下的lib文件拷贝到C:\MinGW\lib,将C:\Boost\lib下的dll文件拷贝到C:\MinGW\bin

三、boost的使用

程序代码入下:

  1. #include <iostream>
  2. #include <boost/math/special_functions/acosh.hpp>
  3. #include <boost/math/special_functions/bessel.hpp>
  4. #include <string>
  5. #include <boost/filesystem.hpp>
  6. #include <boost/timer.hpp>
  7. using namespace boost::math;
  8. using namespace boost::math::detail;
  9. namespace fs = boost::filesystem;
  10. //测试boost贝塞尔函数
  11. void testBessel(){
  12. std::cout<<"Test Boost:"<<std::endl;
  13. std::cout<<acosh(2.5)<<std::endl;
  14. std::cout<<bessel_i0(3.2)<<std::endl;
  15. std::cout<<"Test Finished!"<<std::endl;
  16. }
  17. //测试boost文件系统库
  18. void testFileSystem(){
  19. fs::path full_path("c:");
  20. fs::directory_iterator end_iter;
  21. for ( fs::directory_iterator dir_itr( full_path ); dir_itr != end_iter; ++dir_itr )
  22. {
  23. std::cout << dir_itr->path().filename() << std::endl;
  24. }
  25. }
  26. int main(int argc, char *argv[])
  27. {
  28. std::cout << "-----测试boost贝塞尔函数-------" << std::endl;
  29. testBessel();
  30. std::cout << "-----测试boost文件系统库------" << std::endl;
  31. testFileSystem();
  32. return 0;
  33. }

在xxx_pro中添加,

LIBS += -LC:\Qt\mingw\lib -lboost_system -lboost_filesystem

运行效果如下,

  1. Starting D:\Documents\build-cplusplusboost-unknown-Debug\debug\cplusplusboost.exe...
  2. -----测试boost贝塞尔函数-------
  3. Test Boost:
  4. 1.5668
  5. 5.74721
  6. Test Finished!
  7. -----测试boost文件系统库------
  8. "$RECYCLE.BIN"
  9. "Boost"
  10. "Boot"
  11. "bootmgr"
  12. "Documents and Settings"
  13. "PerfLogs"
  14. "Program Files"
  15. "Program Files (x86)"
  16. "ProgramData"
  17. "Qt"
  18. "RECYCLER"
  19. "System Volume Information"
  20. "Users"
  21. "Windows"

http://blog.csdn.net/xiaopangzi313/article/details/52800799

windows-qt 使用mingw编译c++boost并使用的更多相关文章

  1. 手把手教你在Windows下使用MinGW编译libav(参考libx264的编入)

    转自:http://www.th7.cn/Program/cp/201407/242762.shtml 手把手教你在Windows下使用MinGW编译libav libav是在Linux下使用纯c语言 ...

  2. Windows+QT+Eclipse+MinGW搭建QT开发环境详细教程

     Windows+QT+Eclipse+MinGW搭建QT开发环境详细教程 一.准备工具: QT-SDK for Windows:http://get.qt.nokia.com/qtsdk/qt-sd ...

  3. qt用mingw编译时报错 multiple definition of

    网上相关回答不少,但过于简单,这里做一下记录. qt用mingw编译程序时报“multiple definition of …”这个错误,错误信息大概是如下图所示: 1 2 3 首先,检查自己的程序是 ...

  4. Windows 系统 vs2012 MinGW 编译ffmpeg 静态库

    Windows系统下 vs2012编译ffmpeg 动态库 前面已经有文章讲述,本文将讲述如果编译生成ffmpeg静态库以方便 在vs2012下调用. 准备工作:安装MinGW环境,修改ffmpeg配 ...

  5. 在Windows中使用MinGW编译X264

    转自:http://www.cnblogs.com/xiongjiaji/archive/2012/06/08/2541265.html 参考:http://ayobamiadewole.com/Bl ...

  6. Windows下用Mingw编译Boost.Regex库

    下载Boost库,解压. 定位到regex库文件夹下. GCC所对应的MAKEFILE为gcc.mak 进入命令提示符下,输入make -f gcc.mak 这是如果直接按回车执行的话,会出现错误: ...

  7. 在Windows下利用MinGW编译FFmpeg

    目录 [隐藏]  1 环境与软件 2 第一步:安装MinGW 3 第二步:配置编译环境 4 第三步:配置SDL 5 第四步:编译 5.1 编译faac 5.2 编译fdk-aac 5.3 编译x264 ...

  8. Windows下使用MINGW编译ffplay

    之前考虑到需要快速配置编译ffplay,使用了比较暴力的方法,具体可以参考编译ffplay.exe简化版. 这里介绍下相对规范的做法. 前提:已经安装了Windows下GCC开发环境--MINGW+m ...

  9. 再次尝试windows下msys+MinGW编译ffmpeg

    电脑上安装太多的开源库,环境变量里面一些常用的头文件都有几种,以前使用的编译ffmpeg的方法现在常常提示错误.从config.log中看,这些错误往往都是一些头文件引用错误导致.由于项目中继续编译自 ...

随机推荐

  1. BZOJ 2286 消耗战 - 虚树 + 树型dp

    传送门 题目大意: 每次给出k个特殊点,回答将这些特殊点与根节点断开至少需要多少代价. 题目分析: 虚树入门 + 树型dp: 刚刚学习完虚树(好文),就来这道入门题签个到. 虚树就是将树中的一些关键点 ...

  2. word 论文排版 —— 按指定格式章节的自动编号

    在word中如何实现章节标题自动编号 标题样式与标题的编号是两个步骤,为标题建立编号是在为标题样式确定的基础后进行的.这是显而易见的,也即只有先定义了多级标题(也可使用 word 自带的标题样式),才 ...

  3. 检测鼠标指针的改变(使用GetCursorInfo API函数)

    第一步:定义全局变量用于状态改变时的对比 var Form1: TForm1; OldCI:HICON; 第二步:添加Timer组件,Interval设置随意一般50就可以了. 增加Memo组件用于记 ...

  4. wxWidgets初学者导引(2)——下载、安装wxWidgets

    wxWidgets初学者导引全目录   PDF版及附件下载 1 前言2 下载.安装wxWidgets3 wxWidgets应用程序初体验4 wxWidgets学习资料及利用方法指导5 用wxSmith ...

  5. 数学概念 —— 奇异性(Singularity,Vertical tangent)

    0. 基本定义 Singularity (mathematics) 数学上的奇异性一般是指,函数在该点未定义(not defined,比如取值为无穷),或者不可微(fails to be well-b ...

  6. Android中SQLite数据库操作(1)——使用SQL语句操作SQLite数据库

    下面是最原始的方法,用SQL语句操作数据库.后面的"Android中SQLite数据库操作(2)--SQLiteOpenHelper类"将介绍一种常用的android封装操作SQL ...

  7. Java--垃圾收集算法及内存分配策略

    本篇博客,主要介绍GC的收集算法以及根据算法要求所得的内存分配策略! 一.收集算法 收集算法,主要包括四种,分别是:Mark-Sweep(标记-清除).Copying(复制).Mark-Compact ...

  8. 【OC语法要闻速览】一、方法调用

    调用方法 [object method]; [object methodWithInput:input]; output = [object methodWithOutput]; output = [ ...

  9. 1-5设定NetCore监听端口

    问题的起源:启动一个.netCore项目,默认使用的是5000端口,当我们有很多个项目的时候(集群),不可能都使用5000端口. 方法1:set ASPNETCORE_URLS=http://127. ...

  10. 从hadoop 要删除字符串匹配指定的任务

    我们都知道,假设 hadoop job -list 获取当前正在执行的hadoop 任务,返回的结果例如以下: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQ ...