Google gflags使用說明

2021-08-26 23:06:24 字數 1674 閱讀 3781

目錄

gflags是什麼:

如何安裝使用gflags:

gflags高階使用:

參考:gflags是google的乙個開源的處理命令列引數的庫,使用c++開發,具備python介面,可以替代getopt。

gflags使用起來比getopt方便,但是不支援引數的簡寫(例如getopt支援--list縮寫成-l,gflags不支援)。

使用:首先需要include "gflags.h"(廢話,-_-b)

#include

將需要的命令列引數使用gflags的巨集:define_***xx(變數名,預設值,help-string) 定義在檔案當中,注意全域性域哦。gflags支援以下型別:

在main函式中加入:(一般是放在main函式的頭幾行,越早了解使用者的需求越好麼^_^)

google::parsecommandlineflags(&argc, &argv, true);
如果設為true,則該函式處理完成後,argv中只保留argv[0],argc會被設定為1。
如果為false,則argv和argc會被保留,但是注意函式會調整argv中的順序。

這樣,在後續**中可以使用flags_變數名訪問對應的命令列引數了

printf("%s", flags_mystr);

最後,編譯成可執行檔案之後,使用者可以使用:executable --引數1=值1 --引數2=值2 ... 來為這些命令列引數賦值。

./mycmd --var1="test" --var2=3.141592654 --var3=32767 --mybool1=true --mybool2 --nomybool3
這裡值得注意的是bool型別命令列引數,除了可以使用--***=true/false之外,還可以使用--***和--no***後面不加等號的方式指定true和false

在其他檔案中使用定義的flags變數:有些時候需要在main之外的檔案使用定義的flags變數,這時候可以使用巨集定義declare_***(變數名)宣告一下(就和c++中全域性變數的使用是一樣的,extern一下一樣)

檢驗輸入引數是否合法:gflags庫支援定製自己的輸入引數檢查的函式,如下:

static bool validateport(const char* flagname, int32 value) 

define_int32(port, 0, "what port to listen on");

static const bool port_dummy = registerflagvalidator(&flags_port, &validateport);

判斷flags變數是否被使用者使用:在gflags.h中,還定義了一些平常用不到的函式和結構體。這裡舉乙個例子,判斷引數port有沒有被使用者設定過

google::commandlineflaginfo info;

if(getcommandlineflaginfo("port" ,&info) && info.is_default)

定製你自己的help資訊與version資訊:(gflags裡面已經定義了-h和--version,你可以通過以下方式定製它們的內容)

Google gflags使用說明

gflags是什麼 gflags是google的乙個開源的處理命令列引數的庫,使用c 開發,具備python介面,可以替代getopt。gflags使用起來比getopt方便,但是不支援引數的簡寫 例如getopt支援 list縮寫成 l,gflags不支援 如何安裝使用gflags 使用 首先需要...

Google gflags使用說明

gflags是什麼 gflags是google的乙個開源的處理命令列引數的庫,使用c 開發,具備python介面,可以替代getopt。gflags使用起來比getopt方便,但是不支援引數的簡寫 例如getopt支援 list縮寫成 l,gflags不支援 如何安裝使用gflags 使用 首先需要...

python Flask JQuery使用說明

0.前言 這個例子將執行在樹莓派中,請注意windows平台和linux平台也可以執行該示例,python具有良好的跨平台效能。倉庫 倉庫位於 bitbucket 相關博文 python 擴充套件庫安裝 使用第三方映象源 python flask 學前班 前端學習 html4和html5設定頁面語言...