1. 程式人生 > 實用技巧 >Facebook的folly庫在Utunbu上的編譯

Facebook的folly庫在Utunbu上的編譯

這個沒用選擇使用最新版本的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 _buildcmake ..

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})

注意這裡連結庫的順序,有依賴關係,不可顛倒了順序,詳細的依賴的關係,我也不知道。

附錄:專案目錄結構

編譯過程:很順利,簡單記錄一下。

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

程式碼地址:github:https://github.com/NEU-Liu/HelloFolly

沒有上傳libfolly.a,因為這個靜態庫200多M,即使上傳了,你也不能直接用,你仍然需要把相關的其他依賴!