windows-qt 使用mingw编译c++boost并使用

一、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的使用

程序代码入下:

[cpp] view plain copy

  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

运行效果如下,

[cpp] view plain copy

  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

时间: 2024-12-20 17:22:16

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

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

转自:http://www.th7.cn/Program/cp/201407/242762.shtml 手把手教你在Windows下使用MinGW编译libav libav是在Linux下使用纯c语言开发的,不可避免的,libav源码使用了一些gcc的特性,那么在Windows下很难使用VC编译,但是使用MinGW编译却简单多了,下面我将根据自己的经历逐步介绍使用MinGW编译libav的过程以及在此过程中遇到的问题及其解决方法. 1      安装MinGW编译环境 1.1    安装MinG

在Windows中使用MinGW编译X264

转自:http://www.cnblogs.com/xiongjiaji/archive/2012/06/08/2541265.html 参考:http://ayobamiadewole.com/Blog/Others/x264compilation.aspx 注意:安装完MinGW后,要把“安装路径\MinGW\bin”加到PATH环境变量中.否则在./configure的时候会“No working C compiler found”. 具体步骤如下: For someone coming

Qt使用MinGW编译,如何忽略警告

Qt编译时经常出现以下警告: warning: unused parameter 'arg1' [-Wunused-parameter] warning: unused variable 'i' [-Wunused-variable] 原因是由于某些函数参数或者某些变量未使用,这在程序当中有时候很正常:所以个人认为此警告意义不大,可以忽略它. 方法一:在提示警告函数里面添加Q_UNUSED(arg1); 方法二:(推荐) 在pro工程文件结尾处使用QMAKE_CXXFLAGS.选项格式: -W[

Qt使用MinGW编译,如何忽略警告

Qt编译时经常出现以下警告: warning: unused parameter 'arg1' [-Wunused-parameter] warning: unused variable 'i' [-Wunused-variable] 原因是由于某些函数参数或者某些变量未使用,这在程序当中有时候很正常:所以个人认为此警告意义不大,可以忽略它. 方法一:在提示警告函数里面添加Q_UNUSED(arg1); 方法二:(推荐) 在pro工程文件结尾处使用QMAKE_CXXFLAGS.选项格式: -W[

Windows 环境下 gcc 编译 C++ Boost 库

1. 首先编译 b2.exe 很简单,bootstrap.bat文件里写的明白. 2. b2的命令行参数很多,文档到官网找 若编译boost.python可能要修改project-config.jam using python : 3.7 # Version : C:\\app\\tools\\Python37\\python.exe # Python Path : C:\\app\\tools\\Python37\\include # include path : C:\\app\\tools

windows下用mingw编译linux项目

1.下载安装mingw32 2.将mingw下bin和msys\1.0下bin设置为系统path 3.启动msys.bat 4.cd到项目目录 5.输入./configure 6.输入make 7.输入make install 8.cd C:\MinGW\msys\1.0\local\lib 9.ar x ***.a 10.ar r ***.lib *.o 即生成***.lib,头文件在C:\MinGW\msys\1.0\local\include

在Windows环境下使用MinGW编译Qt 4.8.6

1.修改环境变量工具推荐:Rapid Environment Editor.官网:http://www.rapidee.com/ 修改前请先备份当前的环境变量.然后: (1)检查系统变量path,删除有关mingw其他版本等信息,以免与后续的mingw32-make冲突. (2)检查用户变量INCLUDE.LIB.PATH.MSDevDir和MSVCDir,删除有关\Microsoft Visual Studio\VC98的信息,因为它们会与后续的mingw32-make冲突,导致编译出错. 2

在Windows下使用MinGW静态编译Assimp

使用MinGW静态编译Assimp 到了5月份了,没有写一篇日志,于是自己从知识库里面拿出一篇文章充数吧.这次将要讲解如何在Windows下使用MinGW静态编译Assimp. Assimp是目前比较全的3D格式解析库了,熟悉3D游戏开发的同行都知道,3D的格式非常混乱,各种3D格式在不同场合都有他们特定的应用,游戏引擎只能够解析少部分3D格式,更多实用的格式来自游戏公司自定义的格式.而在开源领域,Assimp算是比较全的3D格式导入库了.它对3D格式理解深入,很适合整合至3D图形引擎中,让你们

Windows下MinGW编译Qt4

还真不是吹,这个问题折磨我一天……前些天转载了一篇关于<Eclipse+Qt开发环境设置>和<Eclipse+MinGW+Qt开发环境设置>两片文章,里面讲述了QT的开源版本qt-win-opensource-4.x.x-mingw.exe 在Windows下的安装步骤,但我的是qt-win-commercial-src-4.x.x.zip,一顿百度.谷歌……结果还都是关于Qt开源版本的介绍,如何在MinGW开发环境编译成了今天的话题. 安装MinGW或者DEV-CPP,设置环境变