C++ win系统如何用MinGW编译Boost库
作者:后厂村路蔡徐坤
这篇文章主要介绍了C++ win系统如何用MinGW编译Boost库问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
在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(); }
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。