C++ win系统如何用MinGW编译Boost库

 更新时间:2022年12月15日 10:09:22   作者:后厂村路蔡徐坤  
这篇文章主要介绍了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(); 
}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 四叉树有损位图压缩处理程序示例

    四叉树有损位图压缩处理程序示例

    这篇文章主要介绍了四叉树有损位图压缩处理程序示例,可以对24位图进行压缩,应用于windows平台,需要的朋友可以参考下
    2014-04-04
  • Dev-C++中文乱码问题的解决办法

    Dev-C++中文乱码问题的解决办法

    述Dev-C++是一款非常简洁实用的C/C++集成开发环境,因为高中参加竞赛的原因我也一直有使用它,下面这篇文章主要给大家介绍了关于Dev-C++中文乱码问题的解决办法,需要的朋友可以参考下
    2023-02-02
  • C语言二叉树的非递归遍历实例分析

    C语言二叉树的非递归遍历实例分析

    这篇文章主要介绍了C语言二叉树的非递归遍历,包括了先序遍历、中序遍历与后序遍历,需要的朋友可以参考下
    2014-09-09
  • c++ 临时对象的来源

    c++ 临时对象的来源

    大家可能对这个临时对象这个概念还不是很清楚,那么首先我们花一些时间来理解临时对象
    2013-01-01
  • C++利用数组(一维/二维)处理批量数据的方法

    C++利用数组(一维/二维)处理批量数据的方法

    对于简单的问题,使用简单的数据类型就可以了,但是对于有些需要处理的数据,只用以上简单的数据类型是不够的,难以反映出数据的特点,也难以有效的进行处理,本文小编给大家介绍了C++利用数组(一维/二维)处理批量数据的方法,需要的朋友可以参考下
    2023-10-10
  • C语言利用面试真题理解指针的使用

    C语言利用面试真题理解指针的使用

    C语言这门课程在计算机的基础教学中一直占有比较重要的地位,然而要想突破C语言的学习,对指针的掌握是非常重要的,本文将具体针对指针的基础做详尽的介绍
    2022-08-08
  • Effective C++ 入门学习笔记

    Effective C++ 入门学习笔记

    这篇文章主要介绍了Effective C++ 入门学习笔记,需要的朋友可以参考下
    2023-08-08
  • C语言实现顺序循环队列实例

    C语言实现顺序循环队列实例

    大家好,本篇文章主要讲的是C语言实现顺序循环队列实例,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-02-02
  • C语言中位域的使用详解

    C语言中位域的使用详解

    位域是C语言中的一种高级功能,允许程序员为结构体的成员分配特定数量的位,本文主要为大家介绍了位域的使用以及优缺点,希望对大家有所帮助
    2023-07-07
  • C/C++如何获取当前系统时间的实例详解

    C/C++如何获取当前系统时间的实例详解

    这篇文章主要介绍了 C/C++如何获取当前系统时间的实例详解的相关资料,这里提供了几种实现方法,帮助大家实现这样的功能,需要的朋友可以参考下
    2017-08-08

最新评论