Facebook的folly庫在Utunbu上的編譯
阿新 • • 發佈:2020-12-19
這個沒用選擇使用最新版本的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,即使上傳了,你也不能直接用,你仍然需要把相關的其他依賴!