如果要把代码中的变量做成可通过配置文件进行配置的,可以使用gflag
来实现。
如,想要通过代码运行
FLAGS_apple_nums
可以这样定义:
DECLARE_int32(apple_nums); //定义在 .h文件
---------------------------------------------------------
DEFINE_int32(apple_nums, 0, "num of apple"); //定义在 .cc文件
对于gflags
中的--flagfile
用法,不管二进制节点后面接几个--flagfile=
的配置文件,他们之间的关系是衔接的。但是对于几个文件中都有的flag, 哪个--flagfile=
文件在后面,哪个变量就是最终代码使用的值。
如:
./app_node --flagfile=app_1.conf --flagfile=app_2.conf
在app_1.conf
中有一句--system_version=1.0.0.0
;
在app_2.conf
文件中有一句--system_version=2.0.0.0
;
那么由于--flagfile=app_2.conf
写在后面,所以代码最终FLAGS_system_version
使用的值是2.0.0.0