preface
我的配置环境:windows10 + qt5.13+ boost1.71
本文着重介绍怎么在Qt上配置使用Boost, 所以就默认大家已经安装配置好了QT!!
编译boost库
下载boost源码:
大家可以在boost官网上下载, 选择需要的版本, 尽量避免使用beta release 版本, 测试版的风险太大, 会出一些莫名其妙的问题, 成了小白鼠。
解压下载的源文件到合适的目录,注意: 此时的目录无关最终的真正有用的头文件, 库的位置, 所以强迫症患者不需要太在意!
生成b2.exe和bjam.exe可执行文件
- win + r 然后输入cmd, 启动命令行窗口:
- 进入build.bat所在的目录 boost根目录\boost_1_71_0\tools\build\src\engine
build mingw
- 编译完之后在当前目录会生成b2.exe和bjam.exe可执行文件,将这两个文件拷贝到boost源代码的根目录下。
执行编译
- 在命令行中切换目录到boost源文件的根目录
- 创建一个目录:C:\Boost, 此目录将用来存放编译的结果
- 执行安装命令:
bjam --toolset=gcc --stagedir=C:\Boost architecture=x86 address-model=64 link=shared runtime-link=shared threading=multi install
此次编译需要大概半个小时, 大家可以休息一会。
解释:- toolset=gcc 表示编译器平台这里用的是vs2008 如果用gcc可以改为toolset=msvc-9.0
- link=shared shared 表示编译出动态库。如果要编译为静态库修改为link=static
- address-- model=64 表示编译为64位,如果不写默认是32位。
- threading=multi 表示支持多线程, 只支持单线程用single
- runtime-link=shared 决定是静态还是动态链接C/C++库
- –stagedir=stagedir 指定编译后存放位置
编译结束后, 就会在指定目录下存放lib/include文件。
在Qt 中使用boost库
配置 .pro 文件
在新建项目的pro文件里添加如下信息
INCLUDEPATH += C:\Boost\include\boost-1_71\
LIBS += C:\Boost\lib\lib*.dll
示例
本示例是使用boost库, 把字符串转化为数字:
#include <boost/lexical_cast.hpp>
#include <iostream>
int main()
{
using boost::lexical_cast;
int a = lexical_cast<int>("123");
double b = lexical_cast<double>("123.12");
std::cout<<a<<std::endl;
std::cout<<b<<std::endl;
return 0;
}
运行结果: