遇见YY

导航

 

这个没用选择使用最新版本的folly,而是原则了v2018.09.10.00(没有为什么,主要不是想选最新的!)

下载tar.gz源码包:https://github.com/facebook/folly/archive/v2018.09.10.00.tar.gz

1:按照read.me文件安装相关依赖

2:mkdir _build && cd _build cmake ..

make 

为了指定安装位置,在这里make之后,在_build文件下,找到cmake_install.cmake文件,
修改
set(CMAKE_INSTALL_PREFIX "/usr/local")
为这个:
set(CMAKE_INSTALL_PREFIX "/home/liu/桌面/Folly/folly-2018.09.10.00/Folly")
其中"/home/liu/桌面/Folly/folly-2018.09.10.00/Folly"是自己指定的一个安装文件夹目录,然后进行下一步 make install。
(主要是我在命令中指定CMAKE_INSTALL_PREFIX参数时,没有安装成功,才这样修改的,知道如何指定这个参数的,欢迎留言!)
make install

3:编写测试文件,folly给了详细的测试代码,这里仅仅摘取了一部分的代码。

#include "Include/folly/FBVector.h"
#include "Include/folly/FBString.h"
#include "Include/folly/portability/GTest.h"
#include "Include/folly/container/Foreach.h"

using namespace std;
using namespace folly;

int main() {
    fbvector<int> v(10, 20);
    EXPECT_EQ(v.size(), 10);
    FOR_EACH (i, v) { EXPECT_EQ(*i, 20); }
    FOR_EACH(i,v) {cout << *i << endl;}
}

4:CMakeLists.txt文件

cmake_minimum_required(VERSION 3.17)
project(NewFolly)

set(CMAKE_CXX_STANDARD 14)
include_directories(Include)

file(GLOB Folly Include/*)
link_directories(Lib)

link_libraries(folly)
link_libraries(folly_test_util)
link_libraries(gtest)
link_libraries(follybenchmark)
link_libraries(glog)
link_libraries(pthread m)
link_libraries(ssl crypto)
link_libraries(gflags)

add_executable(NewFolly main.cpp ${Folly})

注意这里链接库的顺序,有依赖关系,不可颠倒了顺序,详细的依赖的关系,我也不知道。

set(folly_DIR /home/liu/Desktop/folly/f3y/lib/cmake/folly)
find_package(folly)
add_executable(Learn main.cpp)

if(folly_FOUND)
    target_link_libraries(Learn Folly::folly)
else(folly_FOUND)
    message(FATAL_ERROR ”Folly library not found”)
endif(folly_FOUND)

#如果没有gflag_share,则需要换成gflag

 

附录:项目目录结构

编译过程:很顺利,简单记录一下。

欢迎加入folly库交流群:884935898,目前只有群主,哈哈哈哈哈哈!

代码地址:github:https://github.com/NEU-Liu/HelloFolly

没有上传libfolly.a,因为这个静态库200多M,即使上传了,你也不能直接用,你仍然需要把相关的其他依赖!

posted on 2020-12-19 16:12  一骑红尘妃子笑!  阅读(570)  评论(0编辑  收藏  举报