版權聲明:原創文章,歡迎轉載,但請註明出處,謝謝。https://blog.csdn.net/qiuguolu1108/article/details/106445859
abseil庫是google內部使用的一個C++基礎庫。
一、環境
本文基於Ubuntu18.04
安裝abseil,需要提前安裝git
和cmake
、g++
,其中g++
需要支持C++11。本文中使用依賴軟件的版本如下:
root@learner:~# g++ --version
g++ (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0
root@learner:~# cmake --version
cmake version 3.10.2
二、下載abseil
在github中下載abseil,abseil的github地址:https://github.com/abseil/abseil-cpp
。
git clone https://github.com/abseil/abseil-cpp
三、編譯
abseil編譯之後是一大堆靜態庫,使用起來很不方便。這裏爲了使用方便,會把所有的靜態庫打包成一個靜態庫,所以在設置安裝路徑時,不會安裝到系統指定庫路徑處,會把它安裝到自己設置的目錄中。最後製作好靜態庫,手動安裝。
先創建兩個目錄,一個用於安裝,一個構建。
cd abseil-cpp
mkdir bulid #用於構建
mkdir install #用於安裝
進入build目錄
cd build
執行cmake操作
cmake .. DCMAKE_INSTALL_PREFIX=/opt/abseil-cpp/install/
/opt/abseil-cpp/install/
可以是任意有讀寫權限的目錄,可以任意設置,一會頭文件就從這個目錄中。
如果出錯,可以加上-DCMAKE_CXX_STANDARD=11參數。
執行編譯、安裝操作
make && make install
執行這步操作時,要在build
目錄中。
四、安裝
安裝操作分成兩部分,一個安裝文件,另一個是安裝靜態庫。
安裝頭文件
頭文件就在/opt/abseil-cpp/install/
目錄中,只要將文件夾include
中的absl
文件夾複製到/usr/include
目錄即可。
cp -R /opt/abseil-cpp/install/include/absl/ /usr/include/
安裝靜態庫文件
默認產生了一大堆靜態庫文件,使用不方便,所以我們將所有的靜態庫打包成一個libabsl.a
靜態庫。
find ./ -name "*.o" | xargs ar cr libabsl.a
進入剛纔創建的build
目錄,執行上面的命令,會生成一個靜態庫libabsl.a
。
cp libabsl.a /usr/lib
將生成的庫複製到系統路徑
這樣abseil庫就安裝好了。
五、測試
寫一個小程序測試一下:
#include <iostream>
#include <absl/strings/string_view.h>
using namespace std;
int main()
{
absl::string_view sv = "hello world";
cout<<sv<<endl;
return 0;
}
root@learner:~# g++ hello.cpp -labsl
root@learner:~# ./a.out
hello world
運行成功~~~