ubuntu下Gflags安裝 配置 使用

2021-10-06 21:43:46 字數 2344 閱讀 1887

一、基礎知識

1、gflags是一種命令列解析工具(處理命令列引數的庫),主要用於解析用命令列執行可執行檔案時傳入的引數。在gflags中flag可以分散的定義在各個檔案之中,而不用定義在一起,這就意味著在我們可以在乙個單獨的檔案中只定義這個檔案所需要用到的一些flag,鏈結了該檔案應用都可以使用該檔案中的flag,這樣就能非常方便的實現**的復用,如果不同的檔案定義了相同的flag,則會產生錯誤,所以需要明確規範gflags的使用規範。

2、gflags支援的引數型別如下

define_bool:   boolean

define_int32:  32-bit integer

define_int64:  64-bit integer

define_uint64: unsigned 64-bit integer

define_double: double

define_string: c++ string

定義引數通過define_type巨集實現,如下所示,分別定義了乙個bool和乙個string型別的引數,該巨集的三個引數含義分別為命令列引數名,引數預設值,以及引數的幫助資訊。

define_bool(big_menu, true, "include 'advanced' options in the menu listing"); 

define_string(languages, "english,french,german",

"comma-separated list of languages to offer in the 'lang' menu");

3、google::parsecommandlineflags(&argc, &ar**, true);

argc 命令列傳遞的引數個數,ar**為命令列傳遞的參數列,第三個引數功能如下

二、gflags安裝

2、進入clone後的gflags目錄,在此目錄中建立build目錄

mkdir build

3、在build目錄下執行cmake ..

4、執行make 編譯

5、執行安裝命令

三、gflags使用

1、編寫testglfags.cpp

內容如下:

#include #include using namespace std;

define_bool(isvip, false, "if is vip");

define_string(ip, "127.0.0.1", "connect ip");

declare_int32(port);

define_int32(port, 80, "listen port");

int main(int argc, char** ar**)

{ gflags::parsecommandlineflags(&argc, &ar**, true);

std::cout<

sudo g++  -wall -o testgflags testgflags.cpp -lgflags -lpthread

出現以下錯誤:

執行如下語句,解決此錯誤問題:

sudo apt-get purge libgflags-dev

重新編譯,編譯成功。

3、執行該程式

測試成功!

4、進一步擴充套件

如果命令引數過多,還需要每次執行的時候輸入命令引數,這樣太麻煩,可以把命令引數提前寫入flag檔案,然後使用。

編譯flagfile.flags檔案

檔案內容如下:

-ip="192.168.31.14" -port=8000 -isvip=ture

不用編譯cpp檔案,直接執行

linux下gflags的安裝

gflags是google開發的一套命令列引數解析工具,被很多軟體系統所依賴,應該算是乙個基礎的庫,安裝其實很簡單,但是如果在網上找的一些教程大部分都是安裝後不能被其他軟體呼叫的,因為預設使用cmake編譯出的gflags只開啟的靜態庫,當呼叫動態庫時會報各種錯誤,正確開啟方法應該是編譯時開啟動態鏈...

UBUNTU下軟體安裝

先簡單說介紹一下ubuntu。ubuntu的中文發音大約為 烏班圖。ubuntu這個單詞源自非洲,意謂 班圖精神 誰都不是一座孤島,自成一體。每個人都包孕於人類,因他人存在而存在,因他人幸福而幸福。下面介紹下在ubuntu下如何裝軟體。linux系統中,軟體通常以源 或者預編譯包的形式提供。1 軟體...

ubuntu下安裝飛鴿

ubuntu下安裝飛鴿傳書g2ipmsg很麻煩,總是出問題,還需要解決中文支援問題 可參考 如下 其實在ubuntu的源中有個軟體 iptux 信使 可以與windows下的飛鴿傳書 飛秋等工具相容,實現傳送資訊與檔案等功能,安裝十分方面。ubuntu 10.10下安裝iptux的方法 1.安裝。在...