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(); 
}

总结

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

相关文章

  • C++的数据类型你真的了解吗

    C++的数据类型你真的了解吗

    这篇文章主要为大家详细介绍了C++的数据类型,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-02-02
  • C语言中二级指针的实例详解

    C语言中二级指针的实例详解

    这篇文章主要介绍了C语言中二级指针的实例详解的相关资料,希望通过本文能帮助到大家,让大家掌握理解二级指针的知识,需要的朋友可以参考下
    2017-10-10
  • 二叉查找树的插入,删除,查找

    二叉查找树的插入,删除,查找

    以下是对二叉查找树的插入与删除以及查找进行了详细的介绍,需要的朋友可以 过来参考下
    2013-09-09
  • C++中CString string char* char 之间的字符转换(多种方法)

    C++中CString string char* char 之间的字符转换(多种方法)

    在写程序的时候,我们经常遇到各种各样的类型转换,比如 char* CString string 之间的互相转换,这里简单为大家介绍一下,需要的朋友可以参考下
    2017-09-09
  • Java C++ 算法题解拓展leetcode670最大交换示例

    Java C++ 算法题解拓展leetcode670最大交换示例

    这篇文章主要介绍了Java C++算法题解拓展leetcode670最大交换示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • c++项目中后缀名vcxproj和sln的区别及说明

    c++项目中后缀名vcxproj和sln的区别及说明

    这篇文章主要介绍了c++项目中后缀名vcxproj和sln的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • C/C++函数参数声明解析int fun() 与 int fun(void) 的区别讲解

    C/C++函数参数声明解析int fun() 与 int fun(void) 的区别讲解

    C++中int fun()和int fun(void)的区别在于函数参数的声明方式,前者默认允许任意参数,而后者表示没有参数,通过清晰的实例源代码,详细解释了它们在函数声明和调用中的不同之处,这篇文章介绍了C/C++函数参数声明int fun()与int fun(void)的差异,需要的朋友可以参考下
    2024-01-01
  • C语言异或校验算法的项目实现

    C语言异或校验算法的项目实现

    异或校验算法(XOR校验)是一种简单的校验算法,用于检测数据在传输或存储过程中是否发生了错误,本文主要介绍了C语言异或校验算法的项目实现,具有一定的参考价值,感兴趣的可以了解一下
    2023-08-08
  • C++ pimpl机制详细讲解

    C++ pimpl机制详细讲解

    PIMPL 是 C++ 中的一个编程技巧,意思为指向实现的指针。具体操作是把类的实现细节放到一个单独的类中,并用一个指针进行访问
    2022-08-08
  • 嵌入式项目使用C语言结构体位段特性实现断言宏校验数据范围有效性的方法

    嵌入式项目使用C语言结构体位段特性实现断言宏校验数据范围有效性的方法

    今天小编就为大家分享一篇关于嵌入式项目使用C语言结构体位段特性实现断言宏校验数据范围有效性的方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12

最新评论