folly库的安装-Ubuntu18.04

版权声明:原创文章,欢迎转载,但请注明出处,谢谢。 https://blog.csdn.net/qiuguolu1108/article/details/106445831

folly库是facebook的一个C++基础库。

一、环境

本文使用Ubuntu18.04安装folly库,g++和cmake的版本如下:

root@learner:~# g++ --version
g++ (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0

root@learner:~# cmake --version
cmake version 3.10.2

注意:g++需要支持C++14

二、安装依赖
googletest的安装
wget https://github.com/google/googletest/archive/release-1.8.0.tar.gz && \
tar zxf release-1.8.0.tar.gz && \
rm -f release-1.8.0.tar.gz && \
cd googletest-release-1.8.0 && \
cmake . && \
make && \
make install
安装下列的package
sudo apt-get install \
    g++ \
    cmake \
    libboost-all-dev \
    libevent-dev \
    libdouble-conversion-dev \
    libgoogle-glog-dev \
    libgflags-dev \
    libiberty-dev \
    liblz4-dev \
    liblzma-dev \
    libsnappy-dev \
    make \
    zlib1g-dev \
    binutils-dev \
    libjemalloc-dev \
    libssl-dev \
    pkg-config \
    libunwind-dev
安装fmt
git clone https://github.com/fmtlib/fmt.git && cd fmt

mkdir _build && cd _build
cmake ..

make -j$(nproc)
sudo make install
安装调试相关的依赖
apt-get install \
    libunwind8-dev \
    libelf-dev \
    libdwarf-dev
三、下载安装folly

folly的github地址:https://github.com/facebook/folly

下载folly
git clone https://github.com/facebook/folly.git
编译安装folly
cd folly
mkdir _build && cd _build
cmake ..
make -j $(nproc)
make install 

folly库安装完成了,下面写个小程序测试一下。

四、测试
#include <folly/concurrency/ConcurrentHashMap.h>
#include <string>
#include <iostream>

class Student 
{
public:
    Student(std::string name, int id, std::string email)
        : m_name(name), m_id(id), m_email(email)
    {}

    void printSelf() const 
    {
        std::cout << "name: " << m_name << " "
            << "id: " << m_id << " "
            << "email: " << m_email << std::endl;
    }

private:
    std::string m_name;
    int m_id;
    std::string m_email;
};

int main() 
{
    folly::ConcurrentHashMap<std::string, Student> students;
    students.insert("Tom", Student("Tom", 1, "tom@gmail.com"));
    students.insert("Lilly", Student("Lilly", 2, "lilly@gmail.com"));

    for (const auto& st : students) 
    {
        st.second.printSelf();
    }
    
    return 0;
}
root@learner:~# g++ hashmap.cpp -lfolly -lglog -lgflags -lpthread -ldl -ldouble-conversion -liberty -lfmt
root@learner:~# ./a.out 
name: Tom id: 1 email: tom@gmail.com
name: Lilly id: 2 email: lilly@gmail.com

运行成功~~~

示例复制自:https://www.cnblogs.com/albizzia/p/10824721.html

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值