windows下boost库编译

工具:vs2013_update5 + boost_1_70_0

编译前首先了解编译选项MT、MTd、MD、MDd,msdn上面的解释为:

MT:mutithread,多线程库,编译器会从运行时库里面选择多线程静态连接库来解释程序中的代码,即连接LIBCMT.lib库

MTd:mutithread+debug,多线程调试版,连接LIBMITD.lib库

MD:MT+DLL,多线程动态库,连接MSVCRT.lib库,这是个导入库,对应动态库为MSVCRT.dll

MDd: MT+DLL+debug,多线程动态调试库,连接MSVCRTD.lib库,对应动态库为MSVCRTD.dll

 

对于MT/MTd,由于连接运行时库是LIBCMT.lib/LIBCMTD.lib,这两个库是静态库,所以此种方式编译的程序,移到另一台机器上面也可以正常运行。

对于MD/MDd,连接的是动态库,所以如果另一台机器上没有MSVCRT.dll/MSVCRTD.dll时,就提示缺少动态库这样的错误。

 

开发多线程程序时(单线程本文不做讨论),需要选择MT、MTd、MD、MDd其中的一个。

了解的以上即可选择合适的版本进行编译。

前往boost官网下载boost1.70.

下载完成功后解压释放到C:\boost1.70.0,使用VS2013工具运行bootstrap.bat或者直接用Cmd也可。

执行完成

此时会在文件夹中生成2个文件:

然后执行:

查看对应配置:

根据此,可以选定合适版本进行编译:

编译32位静态MT库:
b2 variant=release link=static runtime-link=static threading=multi 

其它版本组合可自行设定选择,等待编译完成。

编译完成后加入工程中,因为编译的为MT版本库,所以需要更改工程属性

完成后写个测试代码测试一下

#include <boost/archive/text_oarchive.hpp> 
#include <boost/archive/text_iarchive.hpp> 
#include <boost/serialization/array.hpp> 
#include <boost/array.hpp> 
#include <iostream> 
#include <sstream> 

std::stringstream ss;

void save()
{
	boost::archive::text_oarchive oa(ss);
	boost::array<int, 3> a = { 0, 1, 2 };
	oa << boost::serialization::make_array(a.data(), a.size());
}

void load()
{
	boost::archive::text_iarchive ia(ss);
	boost::array<int, 3> a;
	ia >> boost::serialization::make_array(a.data(), a.size());
	std::cout << a[0] << ", " << a[1] << ", " << a[2] << std::endl;
}

int main()
{
	save();
	load();
}

点击运行,工程报错:

在不指定调试运行时的情况下使用/rtc选项将导致链接器错误。

fatal error C1189: #error :  "Incompatible build options"

此时修改工程属性:

再次运行,问题解决。

详情参见:https://docs.microsoft.com/en-us/cpp/build/reference/rtc-run-time-error-checks?redirectedfrom=MSDN&view=vs-2019

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Boost是一个开源的C++集合,提供了许多功能强大的组件和工具,用于增强C++语言的功能和性能。Qt是一个跨平台的应用程序开发框架,而MinGW是一个在Windows平台上使用的GNU工具集。 要编译Boost并与Qt和MinGW一起使用,可以按照以下步骤进行操作: 1. 下载Boost:首先,你需要从Boost官方网站(https://www.boost.org/)下载Boost的源代码。选择适合你的操作系统和编译器的版本。 2. 解压Boost:将下载的Boost源代码解压到你选择的目录中。 3. 打开命令提示符:在Windows上,按下Win + R键,输入"cmd"并按下Enter键,打开命令提示符。 4. 进入Boost目录:使用cd命令进入你解压Boost源代码的目录。 5. 运行bootstrap.bat:在命令提示符中运行bootstrap.bat脚本文件,它将为你的系统配置编译环境。 6. 编译Boost:运行b2命令来编译Boost。你可以使用一些选项来指定编译器和其他参数。例如,如果你想使用MinGW编译器,可以运行以下命令: ``` b2 toolset=gcc ``` 7. 安装Boost编译完成后,运行b2 install命令来安装Boost。这将把编译好的文件复制到指定的目录中。 8. 配置Qt项目:在Qt项目中使用Boost时,你需要在项目文件(.pro文件)中添加相应的配置。例如,如果你想使用Boost的某个模块,可以在.pro文件中添加以下行: ``` LIBS += -lboost_module INCLUDEPATH += /path/to/boost ``` 以上是编译Boost并与Qt和MinGW一起使用的基本步骤。具体的配置和使用方法可能因你的项目需求和环境而有所不同。如果遇到问题,可以参考Boost官方文档或在相关社区寻求帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值