一、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 1090 - 区间dp

    Magic Door 题目大意: 给一个字符串,可以将重复的串缩成x(a),表示x个a,求能缩成的最小长度. 题目分析 区间dp: dp[i][j]表示i~j处理后的最小长度, 则有 \[dp[i][ ...

  2. 如何在CSDN博客自定义栏目中添加“给我写信”

    在"自定义栏目"中添加"连接"(将自己的微博,QQ空间和CSDN博客关联起来)很多人都做过.但是添加"给我写信"这个功能,用的好像不太多.此 ...

  3. WPF 高速书写 StylusPlugIn 原理

    原文:WPF 高速书写 StylusPlugIn 原理 本文告诉大家 WPF 的 StylusPlugIn 为什么能做高性能书写,在我的上一篇博客和大家介绍了 WPF 的触摸原理,但是没有详细告诉大家 ...

  4. android制,点击EditText时刻,隐藏系统软键盘,显示光标

    由于项目中要用自己定义的随机键盘,所以必须得屏蔽系统软键盘,可是在4.0的測试系统来看,使用editText.setInputType(InputType.TYPE_NULL)方法固然能隐藏键盘,可是 ...

  5. 编程算法 - 二叉搜索树(binary search tree) 代码(C)

    二叉搜索树(binary search tree) 代码(C) 本文地址: http://blog.csdn.net/caroline_wendy 二叉搜索树(binary search tree)能 ...

  6. unity3d 学习笔记(三)

    工作现场查看: 飞行模式: 按住鼠标右键 w s a d 围绕浏览当前视图, q e 上下浏览. 交模式下无效 需透视图 移动吸附:移动状态(w) ctrl+shif  移动吸附在其它物体上移动 顶点 ...

  7. 《深入浅出WPF》笔记——模板篇

    原文:<深入浅出WPF>笔记--模板篇 我们通常说的模板是用来参照的,同样在WPF中,模板是用来作为制作控件的参照. 一.认识模板 1.1WPF菜鸟看模板 前面的记录有提过,控件主要是算法 ...

  8. i/o多路复用笔记

    1.用户空间和内核空间 操作系统的核心是内核,独立于普通的应用程序,可以访问受保护的内存空间,也可以访问底层硬件设备.为了保护用户进程不能直接操作内核,保证内核的安全,操作系统将虚拟空间划分为两部分, ...

  9. SQLSERVER使用Spring Data JPA实现模糊查询like

    mysql下可以使用 CONCAT函数 @Query("SELECT u.username FROM User u WHERE u.username LIKE CONCAT('%',:use ...

  10. matlab 高阶(一) —— assignin与evalin

    1. assignin assignin(ws, 'var', val) 将 val 值赋值给 ws 空间中的 var 变量,注意这里的变量,必须是 array 类型,而不可以是包含下标索引,如果在指 ...