google gflags库在Windows+Visual Studio2017环境下的安装与使用
程序员文章站
2022-07-14 09:06:45
...
之前在编写一个具体的程序时,需要通过命令行方式运行,根据输入的参数来决定具体的功能。对argv解析很麻烦,因此使用了google的gflags库,该工具可以方便地实现对于命令行参数的解析。gflags官方的功能介绍 How To Use gflags (formerly Google Commandline Flags)
- 下载gflags的源码:gflags
- clone得到的gflags-master是gflags的源码,还需要进行编译。打开CMake,根据需要填写源码路径与编译路径,设置好后点击Configure:
- 选择编译器版本,如果想在64位环境下使用则选择Win64版本,然后点击Finish:
- 如果各项配置成功则显示深色界面,根据需要勾选需要生成的项,勾选完毕后点击Generate:
- 生成成功,点击Open Project:
- 在vs中根据需要选择编译环境,默认Debug,如果需要Release则选择在Release环境下生成,在ALL_BUILD和INSTALL上右键-生成,其中可能会报错,一般不用理会:
- 编译成功后,如果想要在项目中使用,还需要配置环境变量,在解决方案上右键-配置,选择VC++目录,包含目录为之前编译后的文件夹中的include文件夹的地址,库目录为文件夹中lib\Release(或Debug)的地址:
- 选择链接器-输入,在附加依赖项中写入gflags_static.lib、gflags_nothreads_static.lib、shlwapi.lib;
- 配置成功,根据从官方文档中学习它的使用方法,也可以参考这篇文章:google gflags 库完全使用
- 写一段程序进行测试:
#include <iostream> #include <gflags/gflags.h> DEFINE_string(var, "", "input var"); int main(int argc, char ** argv) { google::ParseCommandLineFlags(&argc, &argv, true); std::cout << FLAGS_var << std::endl; system("pause"); return 0; }
- 在解决方案上右键-属性-调试,在命令参数中输入 -var test
- 编译运行,查看结果,如果输出命令行参数信息,则设置成功:
- 接下来就可以使用gflags库对命令行参数进行解析了。更多进阶功能可以去文档中学习。