gflags是什麼:
gflags是google的乙個開源的處理命令列引數的庫,使用c++開發,具備python介面,可以替代getopt。
gflags使用起來比getopt方便,但是不支援引數的簡寫(例如getopt支援--list縮寫成-l,gflags不支援)。
如何安裝使用gflags:
使用:首先需要include "gflags.h"(廢話,-_-b)
#include將需要的命令列引數使用gflags的巨集:define_***xx(變數名,預設值,help-string) 定義在檔案當中,注意全域性域哦。gflags支援以下型別:
在main函式中加入:(一般是放在main函式的頭幾行,越早了解使用者的需求越好麼^_^)
google::parsecommandlineflags(&argc, &argv, true);
argc和argv想必大家都很清楚了,說明以下第三個引數的作用:
如果設為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
gflags高階使用:
在其他檔案中使用定義的flags變數:有些時候需要在main之外的檔案使用定義的flags變數,這時候可以使用巨集定義declare_***(變數名)宣告一下(就和c++中全域性變數的使用是一樣的,extern一下一樣)
檢驗輸入引數是否合法:gflags庫支援定製自己的輸入引數檢查的函式,如下:
static bool validateport(const char* flagname, int32 value)判斷flags變數是否被使用者使用:在gflags.h中,還定義了一些平常用不到的函式和結構體。這裡舉乙個例子,判斷引數port有沒有被使用者設定過define_int32(port, 0, "what port to listen on");
static const bool port_dummy = registerflagvalidator(&flags_port, &validateport);
google::commandlineflaginfo info;
if(getcommandlineflaginfo("port" ,&info) && info.is_default)
定製你自己的help資訊與version資訊:(gflags裡面已經定義了-h和--version,你可以通過以下方式定製它們的內容)
參考:
from:
Google gflags使用說明
gflags是什麼 gflags是google的乙個開源的處理命令列引數的庫,使用c 開發,具備python介面,可以替代getopt。gflags使用起來比getopt方便,但是不支援引數的簡寫 例如getopt支援 list縮寫成 l,gflags不支援 如何安裝使用gflags 使用 首先需要...
Google gflags使用說明
目錄 gflags是什麼 如何安裝使用gflags gflags高階使用 參考 gflags是google的乙個開源的處理命令列引數的庫,使用c 開發,具備python介面,可以替代getopt。gflags使用起來比getopt方便,但是不支援引數的簡寫 例如getopt支援 list縮寫成 l,...
python Flask JQuery使用說明
0.前言 這個例子將執行在樹莓派中,請注意windows平台和linux平台也可以執行該示例,python具有良好的跨平台效能。倉庫 倉庫位於 bitbucket 相關博文 python 擴充套件庫安裝 使用第三方映象源 python flask 學前班 前端學習 html4和html5設定頁面語言...