聊天室项目开发——说明开发环境,安装并使用第一个第三方库gflags
1.开发环境
我的这个项目会在ubuntu22.04下进行从零开始的开发,从这里开始学习只需要保证自己有一台ubuntu22.04的机器就行。一定要ubuntu22.04不然在使用proto的时候会存在一些问题,导致无法生成正确的文件,影响后续的开发。
2.gflags的安装
这里直接使用apt进行安装就可以,比较简单。
sudo apt-get install libgflags-dev
安装完成之后可以去/usr/include下面看看有没有gflags这个文件夹,如果有再看看有没有如下文件,我们使用的就是gflags.h这个头文件
3.gflags的介绍和简单使用
3.1 介绍
gflags 是 Google 开发的一个开源库,用于 C++ 应用程序中命令行参数的声明、定义和解析。gflags 库提供了一种简单的方式来添加、解析和文档化命令行标志(flags),使得程序可以根据不同的运行时配置进行调整。
上面这个是比较官方的介绍,其实通俗的理解gflags就是帮我们完成解析命令行传给main函数的argv内容,减少我们的工作量。
3.2 gflags简单使用
我们需要先定义相关的参数类型、名称以及初始值,比如下面的DEFINE_string这个其实就是类型位string的变量名称为ip,但是我们在使用的时候需要在变量名前加上FLAGS_,并且在使用之前一定要先初始化,也就是调用ParseCommandLineFlags这个函数
#include <gflags/gflags.h>
#include <iostream>DEFINE_string(ip,"127.0.0.1","这是服务器的监听地址,格式:127.0.0.1 ");
DEFINE_int32(port,9000,"这是服务器的监听端口,格式为:9000");
DEFINE_bool(demo,true,"是否启用调试模式,格式:true/false");int main(int argc,char* argv[])
{google::ParseCommandLineFlags(&argc,&argv,true);std::cout<<"ip="<<FLAGS_ip<<std::endl; //falgs库会对处理后变量的变量加上FLAGS前缀std::cout<<"port="<<FLAGS_port<<std::endl;std::cout<<"demo="<<FLAGS_demo<<std::endl;return 0;
}
// 使用方法
// 1. ./main --ip="192.168.0.1" --port=8888 --demo=false
// 2. ./main --flagfile main.conf
// ./main --help 显示后面的提示字段
//main.conf
-ip="192.168.2.2"
-port=8088
-demo=false