Mac下Boost环境搭建

摘要:
需要下载boost的源代码包。在这里,gcc编译器用于解压缩目录中的文件以进行配置:“./bootstrap.sh”执行“sudo./b2--buildtype=complaiinstall”以安装所有boost库。在mac上安装后,头文件路径是:它使用jamroot来配置和管理代码。Jamroot描述整个目录结构的编译规则,jamfile描述文件执行输出。

  Boost,一个功能强大、跨平台、开源而且免费的C++程序库,可以在其官网了解更多:http://www.boost.org,C++标准经过不断的升级完善,现在已经功能越来越吸引人了,Boost开发过程中也吸引了很多C++11新特性,从而更兼容C++的标准库了,这样,有什么理由不用它呢?虽然很多东西我们可以自己写,但是,借助功能稳定的库,可以提高生产力,节约程序员的时间,何乐不为?当然,并非让我们只是调用函数,传参数,完成任务就行了,如果不去了解下背后原理,那只能称之为码农,而不是程序员了。

  由于开发环境基于Mac,那就基于它来搭建一个开发平台,来体验boost库的设计美妙和功能强大吧~:

  1. 首先,需要下载boost的源码包,可以从官网下载,也可以这里下载:boost_1_60_0.tar.bz2

  2. 解压,目录结构如下:

    Mac下Boost环境搭建第1张

    boos子目录下就是其源码了,它们按照功能划分,很清晰。

  3. 编译。编译器至少应支持C++98标准,这里使用gcc编译器,如下:

    Mac下Boost环境搭建第2张

  4. 安装:

    执行解压目录下文件进行配置:"./bootstrap.sh"

    执行"sudo ./b2 --buildtype=complete install"进行boost所有库的安装,在mac下安装后头文件路径为:/usr/local/include/boost,库路径为/usr/local/lib

  5. 构建工具安装

    构建工具可以使用make、cmake等,这里使用boost自带的b2,它使用jamroot来配置、管理代码,然后每个模块子目录下都有jamfile。

    cd tools/build

    ./booststrap.sh

    sudo ./b2 install

  6. 测试代码:

    Mac下Boost环境搭建第3张

  7. 编译运行:

    目录结构如下:

    Mac下Boost环境搭建第4张

    jamroot和jamfile文件内容分别如下:

    Mac下Boost环境搭建第5张

    jamroot说明了整个目录结构的编译规则,jamfile说明了文件的执行输出,如exe,unit-test等,现在需要测试main.cpp,进入te目录下执行b2命令即可,输出,执行后目录结构如下:

    Mac下Boost环境搭建第6张

    可以看到,在jamfile声明了unit-test,在执行b2命令时也进行了单元测试,这里默认生成debug版本的输出文件,如果要发布,执行"b2 release"即可。这里看到输出boost版本为106000,现在可以使用boost来进行开发了。

    (也可以执行"g++ -o main.out main.cpp",注意,在ubuntu下需要加上-Istdc++,即:g++ -o main.out main.cpp -Istdc++)

免责声明:文章转载自《Mac下Boost环境搭建》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇服务监控之 Spring Boot Admin.实验二:ICMP重定向攻击下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Mac添加命令别名

1. 切换到用户主目录 $ cd   2. 编辑或新建.bash_profile文件 3. 添加别名 命令别名设置语法: alias [别名]='[指令名称]' 注意:等号两边均无空格,指令名称中如有空格,需用引号包裹 例如: alias ll='ls -Alh' 4. 重载该配置文件 $ source .bash_profile 5. 查看当前所有别名...

2020第44周Windows文件系统不区分大小写

由于Windows文件系统不区分大小写,所以你不能通过大小写来区分文件名或文件夹名,比如你在资源管理器中新建一个A.txt文件,想再建个a.txt时会提示你重名并自动重命名。这在Git操作时可能会遇到问题,比如你代码库里文件或文件夹修改了名称,默认Git认为是没变的,如果单纯让Git在仓库中区分大小写会产生两份文件并且无法在Windows系统中观察到),...

sqlserver 实现数据变动触发信息

1、建立存储过程,功能是动态写入文件中信息,可以在触发器或存储过程调用。 SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO create proc [dbo].[SP_SendMagToFile] ( @path varchar(100), @fileName varchar(100), @ms...

从软件官网下载了软件可执行文件,添加到UOS桌面快捷方式

    比如sublime官网更新,但是UOS商店没有更新,每次打开软件都是提示我更新,很烦。所有从sublime官网下载最新版本的,但是如何放到UOS桌面呢??? 默认情况下系统所有的快捷方式放在/usr/share/applications,打开该目录会看到大量的.desktop文件,每个文件便是一个快捷方式。 [Desktop Ent...

vue 支持 超大上G,多附件上传

之前仿造uploadify写了一个HTML5版的文件上传插件,没看过的朋友可以点此先看一下~得到了不少朋友的好评,我自己也用在了项目中,不论是用户头像上传,还是各种媒体文件的上传,以及各种个性的业务需求,都能得到满足。小小开心了一把。   但无论插件再怎么灵活,也难以应付所有的需求,比如,你要上传一个2G的文件。以现在我们的网速,恐怕再快也得传半小时。要命...

在Ubuntu Kylin 16.04 LTS 上源码方式安装odoo

更新Ubuntu服务器软件源 运行以下代码: sudo apt-get update  #更新软件源   sudo apt-get dist-upgrade  #更新软件包,自动查找依赖关系   sudo shutdown -r now  #重启服务器,以更新改变的内容    新建系统用户用于运行Odoo程序 运行如下命令创建系统用户: sudo...