当前位置:网站首页>Boost库学习笔记(一)安装与配置
Boost库学习笔记(一)安装与配置
2022-08-04 16:56:00 【Moresweet猫甜】
Boost库学习笔记(一)安装与配置
1. 获取boost
https://www.boost.org/users/history/version_1_79_0.html
任选其一
boost的目录结构:
tip:
- boost库的根目录库应该设置到环境变量**$BOOST_ROOT** 中,笔者路径为(D:\Software\boost_1_79_0)
- 编译boost程序时,你需要将boost的头文件的目录添加进来,笔者路径为(D:\Software\boost_1_79_0\boost)
仅头文件的库:
大多数的boost库都是header-only的,即头文件已经包含了模板和内联函数,不需要单独编译或者在链接时特殊对待。
当然也有些库需要单独编译才能用:
还有一少部分是可选单独编译的:
- Boost.Graph also has a binary component that is only needed if you intend to parse GraphViz files.
- Boost.Math has binary components for the TR1 and C99 cmath functions.
- Boost.Random has a binary component which is only needed if you’re using
random_device
. - Boost.Test can be used in “header-only” or “separately compiled” mode, although separate compilation is recommended for serious use.
- Boost.Exception provides non-intrusive implementation of exception_ptr for 32-bit _MSC_VER==1310 and _MSC_VER==1400 which requires a separately-compiled binary. This is enabled by #define BOOST_ENABLE_NON_INTRUSIVE_EXCEPTION_PTR.
- Boost.System is header-only since Boost 1.69. A stub library is still built for compatibility, but linking to it is no longer necessary
2.Windows安装过程
使用windows的命令提示符用管理员的权限打开,切换到boost的根目录。
bootstrap.bat # 执行bootstrap.bat的批处理
# 运行完成后会生成b2.exe程序
b2.exe # 开始编译工作
b2.exe程序可以支持的参数有:
toolset
编译器类别,可以是gcc,或者是msvctarget-os
目标操作系统,可以是Windows,Linuxvariant
生成类型,可以是 debug(-gd-)或者release (-)threadapi
线程API的实现,可以是win32或者pthread,在windows上编译就用win32link
链接库类型,可以是静态的static,也可以是shared,对应windows上的库就是.lib或者是dllruntime-link
动态还是静态链接C/C++运行时库。同样有shared (-)和static (-s-)两种方式,这样runtime-link和link可以产生4种组合方式,可以根据需要选择编译.prefix
安装路径user-config
用户自定义配置文件,在cross compile的时候可以用来配置编译工具链address-model
生成32位还是64位库文件architecture=x86
cpu架构,一般台式机位x86,嵌入式平台位arm
编译安装64位的Release版的静态链接库可以执行下面的指令:(-mt-s-)
.\b2.exe variant=release threading=multi threadapi=win32 link=static runtime-link=static --prefix=E:\boost_1_77_0 address-model=64 architecture=x86 install -j8
本段内容摘自https://www.cnblogs.com/lylygoing/p/BoostDownload.html
当没有指定参数的时候,默认编译生成在当前目录下。
从输出可以看出,头文件在D:\Software\boost_1_79_0
,链接的库的路径在D:\Software\boost_1_79_9\stage\lib
下,其中也会生成bin.v2的目录,大小在2.3G左右,可以直接删除。
3. Linux安装过程
下载
https://www.boost.org/users/history/version_1_79_0.htmltar -xzvf boost_1_79_0.tar.gz #解压 cd boost_1_79_0 #进入目录 vim bootstrap.sh #修改prefix为指定目录,笔者为/usr/local/boost1.79 ./bootstrap.sh sudo ./b2 install # 不加sudo仍然生成在本目录
4.VS的编译工作准备
创建新项目(VS2022)
新建一个源文件
粘贴以下代码
#include <boost/lambda/lambda.hpp> #include <iostream> #include <iterator> #include <algorithm> int main() { using namespace boost::lambda; typedef std::istream_iterator<int> in; std::for_each( in(std::cin), in(), std::cout << (_1 * 3) << " "); }
对解决方案进行配置
5.测试运行
每次都会输出你输入值的三倍
6.要点总结
- 安装的时候先执行bootstrap的脚本文件(Windows执行.bat,Linux执行.sh),之后再执行b2的程序进行编译安装,注意参数可以指定。
- 使用Boost库主要是附加其头文件目录和库文件目录,用什么工具都要遵循这个原则。
边栏推荐
- 《分布式云最佳实践》分论坛,8月11日深圳见
- 一张图片怎么旋转90度。利用ps
- ES中同时使用should和must导致只有must生效解决方案
- 15 days to upgrade to fight monsters and become a virtual fashion creator
- 移动中兴ZXV10 B860AV2.1-A_S905L2_MT7668_线刷固件包
- 数据库内核面试中我不会的问题(2)
- 乐享购(分享购)的模式:优势、亮点、收益
- Taurus.MVC WebAPI 入门开发教程2:添加控制器输出Hello World。
- leetcode 006. 排序数组中两个数字之和
- Copycat CNN: Stealing Knowledge by Persuading Confession with Random Non-Labeled Data阅读心得
猜你喜欢
Mobile magic box CM201-1_CW_S905L2_MT7668_wire brush firmware package
【商家联盟】云平台—异业联盟,打造线上线下商业相结合的系统
mysql学习笔记——利用动态SQL和Session变量实现一个公式或者计算器
水能自发变成“消毒水”,83岁斯坦福教授:揭示冬天容易得流感的部分原因...
开一个羽毛球馆大概需要多少钱?大约15万左右可以搞定!
乐享购(分享购)的模式:优势、亮点、收益
安装win11提示开启安全模式如何解决
广东移动魔百盒M411A _905L3_线刷固件包
电气成套设备行业如何借助ERP系统,解决企业管理难题?
GraphQL 入门与实践
随机推荐
图扑软件与华为云共同构建新型智慧工厂
taro 滚动组件ScrollView
How to convert an int attribute into a string in the json format returned by the Go language gin framework?
北京海淀6家必胜客被暂停外卖订餐 存在食品安全问题
leetcode 48. Rotate Image 旋转图像(Medium)
提高图片清晰度的快速方法?
AtCoder Beginner Contest 262 部分题解
生产环境重大bug,update加上索引字段会走索引进行更新?还是走全表扫描
湖北电信天邑TY1608_S905L3B_MT7668_卡刷固件包
HCIP笔记(8)
机器学习(十九):梯度提升回归(GBR)
华硕win11安全启动如何开启
Mobile magic box CM201-1_CW_S905L2_MT7668_wire brush firmware package
码蹄集 - MT2165 - 小码哥的抽卡之旅1
九联_UNT400G_S905L2_(联通)_线刷固件包
RTL8762DK 远端设备配对
域名哪家便宜?怎么买便宜域名?
15 days to upgrade to fight monsters and become a virtual fashion creator
机器人示教编程与离线编程的优缺点对比
Compose 类型稳定性注解:@Stable & @Immutable