folly库安装(1)cmake和gcc的安装、升级

article/2025/11/5 20:12:21

facebook的folly库是个很强大的c++库,是对标准c++库的强大补充,里面提供了很多高性能的组件,比如FbString, Futures, Executors, ConcurrentHashMap, AsyncUDP等。但folly的安装有点小麻烦,我这里把安装的整个过程记录一下,一是做个笔记,也希望对其他程序员朋友有帮助。提醒一下,我选择的操作系统是centos7.9。

安装过程分3大块:

1、基础组件的安装、升级。比如cmake, gcc, openssl-1.1.1, python3.8, libevent等。

2、folly依赖的重要组件安装。比如double-conversion, google-gflags, glog, fmt, googletest, boost等。

3、最后才是folly的安装。

一、基础组件的安装:cmake的安装

1、下载cmake的2进制文件

有2种下载方式:cmake官网或github网站。

cmake官网

2、把文件解压到/usr/local/cmake目录

cmake加压后的目录结构

3、修改 ~/.bash_profile

路径配置

4、确认

执行命令:source .bash_profile

查看版本:cmake --version

二、基础组件的安装:gcc的安装

因为folly是基于c++14开发的,所以必须升级gcc,我选择的是gcc-7.4.0。

1、下载gcc

下载gcc

2、安装

(1)tar -jxvf gcc-7.4.0.tar.bz2

(2)cd gcc-7.4.0

(3)./contrib/download_prerequisites

(4) mkdir gcc-build-7.4.0

(5)cd gcc-build-7.4.0/

(6)../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib

(7)make -j$(nproc)

(8)make install

3、验证

gcc -v

4、更新gcc后libstdc++.so也需要更新下,不然会有下面error:

报错信息

解决办法:

(1)找到gcc7.4的libstdc++.so库,比如libstdc++.so.6.0.24。

(2)把libstdc++.so.6.0.24拷贝到/usr/lib64目录。

(3)建立软链接:ln -s libstdc++.so.6.0.24 libstdc++.so.6。


http://chatgpt.dhexx.cn/article/FAQSwUwj.shtml

相关文章

C++ folly库解读(三)Synchronized —— 比std::lock_guard/std::unique_lock更易用、功能更强大的同步机制

目录 返利 www.cpa5.cn 传统同步方案的缺点folly/Synchronized.h 简单使用Synchronized的模板参数withLock()/withRLock()/withWLock() —— 更易用的加锁方式升级锁ulock()和 withULockPtr()Timed LockingSynchronized 与 std::condition_variableacquireLocked() —— 同时…

folly库安装(4)folly依赖的重要组件安装:double-conversion, google-gflags, glog, fmt, googletest, boost等

folly库依赖的组件版本可以在build\fbcode_builder\manifests目录查看,比如需要查看double-conversion的版本,只需要打开double-conversion文件,就能查看到依赖文件的详细版本信息。 这篇文章,我会把double-conversion, google-gf…

C++学习(四):Facebook 的 C++ 11 组件库 Folly Futures

Futures 是一种通过自然的、可组合的方式表达异步计算的模式。这篇博文介绍了我们在 Facebook 中使用的一种适用于 C11 的 futures 实现:Folly Futures。 为什么要使用异步? 想象一个服务 A 正在与服务 B 交互的场景。如果 A 被锁定到 B 回复后才能继续…

folly::ConcurrentSkipList 详解

SkipList 原理及构造过程 SkipList 是受多层链表的启发而设计出来的。实际上,最理想的情况是上面每一层链表的节点个数,是下面一层的节点个数的一半,这样查找过程就非常类似于一个二分查找,使得查找的时间复杂度可以降低到 O(log…

Facebook Folly源代码分析

Folly是Facebook的一个开源C11组件库,它提供了类似Boost库和STL的功能,包括散列、字符串、向量、内存分配、位处理等,用于满足大规模高性能的需求。 6月初,Facebook宣布将其内部使用的底层C组件库Folly开源,本文尝试对…

folly官方例子

folly官方例子 Future<vector<LeafResponse>> fanout(const map<Leaf, LeafReq> &leafToReqMap,chrono::milliseconds timeout) {vector<Future<LeafResponse>> leafFutures;for (const auto &kv : leafToReqMap) {const auto &leaf…

Facebook 的 C++ 11 组件库 Folly Futures

英文原版&#xff1a;https://code.facebook.com/posts/1661982097368498/futures-for-c-11-at-facebook/ https://www.oschina.net/translate/futures-for-c-11-at-facebook http://www.lupaworld.com/article-254822-1.html Futures 是一种通过自然的、可组合的方式表达异…

交叉编译folly库

假定交叉编译链工具所在目录为&#xff1a;/home/softwares/gcc-ubuntu-9.3.0-2020.03-x86_64-aarch64-linux-gnu/bin/&#xff0c;其c编译器为&#xff1a;/home/softwares/gcc-ubuntu-9.3.0-2020.03-x86_64-aarch64-linux-gnu/bin/aarch64-linux-gnu-g 1. 下载folly源码&…

folly库安装(5)folly的安装

上面这些准备工作做完了&#xff0c;现在就可以安装folly了&#xff0c;其实这时folly的安装已经非常顺利了。网上有人说folly的安装很麻烦&#xff0c;最重要是上面的准备工作没做好&#xff0c;只要你按照我上面的文章&#xff0c;一步步做下来&#xff0c;安装成功是没问题的…

揭秘Facebook官方底层C++函数Folly

2019独角兽企业重金招聘Python工程师标准>>> Folly与Boost、当然还有std等组件库的关系是互为补充&#xff0c;而不是彼此竞争。实际上&#xff0c;只有当我们需要的东西既没有&#xff0c;也无法满足所需的性能要求时&#xff0c;我们才开始定义自己的组件。 性能问…

《设计原则》(一)

易理解性和易使用性的设计原则 提供一个好的概念模式&#xff1b;&#xff08;一个好的概念模式使用户能够预测操作的行为效果&#xff09;可视性(消除执行阶段和评估阶段的鸿沟)&#xff1b;自然匹配&#xff1b;&#xff08;利用物理环境类比和文化标准概念、空间类比&#…

C++设计模式的设计原则(面向对象八大设计原则)

面向对象设计八大设计原则 一、温故面向对象二、八大设计原则三、以史为鉴 先掌握八大设计原则&#xff0c;再详细看23种设计模式&#xff08;&#x1f448;点我&#xff09; 一、温故面向对象 &#xff08;1&#xff09;隔离变化&#xff1a;从宏观层面上来看&#xff0c;面向…

设计原则设计模式

导论 什么是设计原则&#xff1a;判断程序设计质量好坏的准则。什么是设计模式&#xff1a;软件设计过程中重复出现问题的解决方案设计原则的作用&#xff1a;指导抽象、类、类关系设计&#xff0c;相当于指导设计程序基础框架&#xff08;Rank-分层、Role-角色、Relation-类关…

设计原则详解

1.单一职责 一个类&#xff0c;只有一个引起它变化的原因。应该只有一个职责。每一个职责都是变化的一个轴线&#…

五大设计原则——SOLID

目录 简介&#xff1a; 1、单一职责原则&#xff08;SRP&#xff09; 2、开闭原则&#xff08;OCP&#xff09; 3、里式替换原则&#xff08;LSP&#xff09; 4、依赖倒置原则 (DIP) 5、接口隔离原则 (ISP) 简介&#xff1a; 无论是软件系统设计&#xff0c;还是代码实现…

1. 设计原则

文章目录 设计原则思维导图核心理论SOLID单一职责开放封闭里式替换接口隔离依赖反转 KISSDRYLOD 设计原则思维导图 核心理论 基于接口编程 “基于接口而非实现编程” - “Program to an interface, not an implementation”。 “接口”就是一组“协议”或者“约定”&#xff…

七大设计原则

一、七大设计原则 &#xff08;1&#xff09;单一职责原则 &#xff08;2&#xff09;接口隔离原则 &#xff08;3&#xff09;依赖倒置原则 &#xff08;4&#xff09;里氏替换原则 &#xff08;5&#xff09;开闭原则 &#xff08;6&#xff09;迪米特法则 &#xff0…

chrome浏览器截长图

使用chrome浏览器 打开开发者模式(更多工具->开发者工具) mac 按commandshiftp windows 按ctrlshiftp 然后输入capture 选择capture full size screenshot就可以了 截了个长图的例子

手把手教你截长图

1.截长图的工具 相信很多小伙伴在平时工作做都会碰见截图的问题&#xff0c;那正常的图&#xff0c;我们有各种方式去截取&#xff0c;例如&#xff1a;QQ的CtrlAltA&#xff0c;微信的AltA等等 但是呢&#xff0c;如果要用到长图的时候&#xff0c;就束手无策了&#xff0c;这…

python如何截长图_利用 Python + Selenium 实现对页面的指定元素截图(可截长图元素)...

对WebElement截图 WebDriver.Chrome自带的方法只能对当前窗口截屏&#xff0c;且不能指定特定元素。若是需要截取特定元素或是窗口超过了一屏&#xff0c;就只能另辟蹊径了。 WebDriver.PhantomJS自带的方法支持对整个网页截屏。 下面提供几种思路。 方式一 针对WebDriver.Chro…