在win端如果使用非VS编译器,则需要使用Boost.Build来创建自己的二进制文件。
本文,主要记录win系统用MinGW编译Boost库的过程。
1、下载
boost下载并解压缩,下载链接:https://www.boost.org/users/history/
2、编译链接库
1)创建三个独立文件夹
#后期可以删除,安装Boost.Build
mkdir D:\boost_build
#后期可以删除,存放
mkdir D:\boost_1_76_0\build
#后期不可删除,存放库文件的
mkdir D:\boost
2)安装Boost.Build
cd D:\boost_1_76_0\tools\build
bootstrap.bat gcc
b2 install --prefix="D:\boost_build" --toolset=gcc
3)编译链接库
先将cd D:\boost_1_76_0\
cd D:\boost_1_76_0\
b2 --build-dir="D:\boost_1_76_0\build" --prefix="D:\boost" --toolset=gcc --build-type=complete stage
4) 删除
编译完成后,可以把D:\boost_build和D:\boost_1_76_0\build两个目录删掉,最终的boost库安装在D:\boost下面
3、链接库测试
gcc -I"D:\boost\include\boost-1_76" -L"D:\boost\lib"
INCLUDE += D:\process\boost_1_77_0
LIB += D:\process\boost_1_77_0\stage\lib
测试代码:
#include <iostream>
#include <string>
#include <boost/thread/thread.hpp>
#include <boost/bind.hpp>
using namespace boost;
void helloA()
{
std::cout << "I'm thread A ! --- Start " << std::endl;
sleep(10);
std::cout << "I'm thread A ! --- OVER " << std::endl;
}
void helloB()
{
std::cout << "I'm thread B ! --- Start " << std::endl;
sleep(10);
std::cout << "I'm thread B ! --- OVER " << std::endl;
}
int main(int argc, char *argv[])
{
std::cout << "Hello world!" << std::endl;
boost::thread thrdA(&helloA);
boost::thread thrdB(&helloB);
thrdA.join();
thrdB.join();
}
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。