【环境搭建】gflags和glog的安装

article/2025/10/19 11:18:00

【环境搭建】gflags和glog的安装

  • 在Ubuntu16.04上安装gflags
    • 什么是gflags
    • 安装gflags
  • 在Ubuntu16.04上安装glog
    • 什么是glog
    • 安装glog
    • 使用glog
  • 结语

在Ubuntu16.04上安装gflags

什么是gflags

gflags用于处理命令行参数

安装gflags

  1. 用apt下载git和cmake
sudo apt-get install git
sudo apt-get install cmake
  1. 将gflags源码下载到指定目录
# 以/thirdparty-source/gflags作为指定目录为例
git clone https://github.com/gflags/gflags /thirdparty-source/gflags
  1. 使用apt安装autoconf,automake和libtool
sudo apt-get install autoconf
sudo apt-get install automake
sudo apt-get install libtool
  1. 进入包含gflags源码的文件夹
# 以/thirdparty/gflags作为安装目录为例
cmake -DCMAKE_INSTALL_PREFIX=/thirdparty/gflags -DBUILD_SHARED_LIBS=ON -DGFLAGS_NAMESPACE=google -G"Unix Makefiles"
make -j
sudo make install

在Ubuntu16.04上安装glog

什么是glog

glog用于生成日志

安装glog

  1. 将glog源码下载到指定目录
# 以/thirdparty-source/glog作为指定目录为例
git clone https://github.com/google/glog /thirdparty-source/glog
  1. 进入包含glog源码的文件夹
./autogen.sh
# 以/thirdparty/glog作为安装目录为例
sudo CFLAGS="-fPIC" ./configure --prefix=/thirdparty/glog
# 以/thirdparty/glog作为安装目录为例
cmake -DBUILD_gflags_LIBS=ON -DBUILD_SHARED_LIBS=ON -DBUILD_gflags_nothreads_LIBS=ON -DGFLAGS_NAMESPACE=ON -DCMAKE_INSTALL_PREFIX=/thirdparty/glog
# 相比make,make -j编译更快
make -j
sudo make install
  1. 查看cpu信息。cat命令的功能是查看某个文件的内容,在终端打印文件中的内容
cat /proc/cpuinfo

使用glog

因为glog被安装在自己指定的目录下,所以必须通过配置环境变量才能让程序找到相关文件(gflags也是一样)。配置方法如下

1.用vim新建一个.bash_profile文件

vim .bash_profile

注意.bash_profile文件是隐藏的,查看需要用下面这个命令

ls -a
  1. 在.bash_profile文件中用下面的格式配置环境变量
# glog# C_INCLUDE_PATH:c语言.c文件需要的头文件的路径
export C_INCLUDE_PATH="/thirdparty/glog/include":$C_INCLUDE_PATH
# CPLUS_INCLUDE_PATH是c++:cpp文件需要的头文件的路径
export CPLUS_INCLUDE_PATH="/thirdparty/glog/include":$CPLUS_INCLUDE_PATH
# LD_LIBRARY_PATH:程序编译连接之后寻找库文件的路径
export LD_LIBRARY_PATH="/thirdparty/glog/lib":$LD_LIBRARY_PATH
# LIBRARY_PATH:程序编译连接时寻找库文件的路径
export LIBRARY_PATH="/thirdparty/glog/lib":$LIBRARY_PATH
# CMAKE_PREFIX_PATH
export CMAKE_PREFIX_PATH="/thirdparty/glog":$CMAKE_PREFIX_PATH
# PKG_CONFIG_PATH
export PKG_CONFIG_PATH="/thirdparty/glog/lib/pkgconfig":$PKG_CONFIG_PATH

保存退出vim后执行下面的命令使环境变量临时生效

source .bash_profile

配置好环境变量后新建一个glog_test.cpp文件,内容如下

#include "glog/logging.h"int main(int argc, char* argv[])
{google::InitGoogleLogging(argv[0]);// test_log是存放日志的文件夹,和glog_test.cpp在同一目录下,且必须提前mkdir好FLAGS_log_dir = "./test_log";LOG(INFO)<<"my glog test";return 0;
}

保存之后使用下面命令编译glog_test.cpp 文件

g++ -o glog_test glog_test.cpp -lglog
  • -o 后面的第一个glog_test是编译glog_test.cpp后生成可执行文件的名字
  • -lXX是手动连接c++的库,丢失或位置不对都会报错。

编译之后会在当前目录生成一个名为glog_test的可执行文件,执行它

./glog_test

之后会在test_log文件中看到生成的日志文件
图1

结语

如果您有修改意见或问题,欢迎留言或者通过邮箱和我联系。
如果我的文章对您有帮助,转载请注明出处。


http://chatgpt.dhexx.cn/article/l8jQerqR.shtml

相关文章

Windbg的gflags.exe -- Attach调试利器

有没有碰到过程序启动就因为异常直接crash&#xff1f;有没有碰到程序启动之后什么反应也没有&#xff1f;有没有碰到过程序启动之后去触发另一个进程失败&#xff1f;有没有碰到别人的程序调用了你的代码&#xff0c;出现问题以后&#xff0c;让你来调查&#xff0c;而你只有你…

gflags的交叉编译

gflags版本&#xff1a;gflags 2.2.2 目录 编译 动态库的编译 cmake 设置交叉编译器是重点。 lbwDESKTOP-LBW22:/mnt/d/ref/gflags-master/_build$ cmake .. -DGFLAGS_NAMESPACEgflags -DCMAKE_CXX_FLAGS-fPIC -DBUILD_SHARED_LIBSON -DCMAKE_C_COMPILERaarch64-linux-gnu-…

【Ubuntu 20.04】 安装使用 Gflags、Glog、JSON、yaml 教程

Gflags 谷歌命令行解析工具gflags详解 https://zhuanlan.zhihu.com/p/95889124Glog //安装 sudo apt-get install libgoogle-glog-dev //卸载 sudo apt-get remove libgoogle-glog-devGoogle开源库之Glog库详解 https://zhuanlan.zhihu.com/p/26025722JSON Linux C/C下使用…

Ubuntu20.04安装g3log、glog和gflags

建议最好先安装最新版本的cmake&#xff0c;在进行以下安装 cmake安装教程 1.安装gflags 方法一、首先打开终端 ||git clone https://github.com/gflags/gflags.git ||cd gflags ||mkdir build && cd build ||cmake .. -DGFLAGS_NAMESPACEgoogle -DCMAKE_CXX_FLAGS-f…

Gflags learning notes

简介 gflags是谷歌开发的一个命令行标记库&#xff0c;区别于其他命令行标记库&#xff0c;它允许标记定义出现在源文件各处&#xff0c;而不是限定在一个源文件&#xff08;如main()&#xff09;中。这意味着一个源代码文件定义和使用对该文件有意义的标志&#xff0c;任何链接…

(02)Cartographer源码无死角解析-(09) gflags与glog简介、及其main函数讲解

本人讲解关于slam一系列文章汇总链接:史上最全slam从零开始&#xff0c;针对于本栏目讲解(02)Cartographer源码无死角解析-链接如下: (02)Cartographer源码无死角解析- (00)目录_最新无死角讲解&#xff1a;https://blog.csdn.net/weixin_43013761/article/details/127350885 …

glog和gflags的使用

glog&#xff1a;日志输出 支持debug功能 glog提供特定的宏只在debug模式下生效。以下分别对应LOG、LOG_IF、DLOG_EVERY_N操作的专用宏。 DLOG(INFO) << "Found cookies"; DLOG_IF(INFO, num_cookies > 10) << "Got lots of cookies"; DLO…

【gflags】gflags 命令行参数配置库

gflag介绍 google开源的gflags是一套命令行参数解析工具 主要就是用来解析命令行参数&#xff0c;并且支持从文件或者从环境变量中读入参数&#xff0c;功能十分强大 gflag的使用 我们以使用为目标进行讲解&#xff0c;不会进行深入了解&#xff08;其实并不是很难&#xff0c;…

js判断文件类型详解

js判断文件类型详解 通过file的type属性判断 <input type"file" onchange"onchangecb(this)" /> <script> function onchangecb(e) {const file e.files[0];console.log(file.type); } </script>像html中input标签&#xff0c;就是根…

JS——判断变量类型方法汇总

判断变量类型 一、使用typeof判断变量类型二、使用instanceof判断变量的类型三、使用constructor判断变量的类型四、使用Object.prototype.toString.call判断变量的类型五、使用jquery中$.type判断变量的类型。六、总结 在JS中&#xff0c;有 5 种基本数据类型和 1 种复杂数据类…

JavaScript中的类型判断

js中的类型判断 1、使用typeof进行类型判断2、使用 instanceof 判断对象3、使用Array.isArray()判断数组 1、使用typeof进行类型判断 function fun() { }; console.log("数字的类型为&#xff1a;" typeof (1)); console.log("字符串的类型为&#xff1a;&quo…

js:判断数据类型的几种方法

参考文章&#xff1a;JavaScript中判断对象类型的几种方法总结 根据要判断的数据对象&#xff0c;来选用合适的方法 1、原始数据类型 6种&#xff1a;number、string、boolean、undefined、null、symbol 一、typeof let str hello; console.log(typeof str); // string【特…

JS判断数据类型的几种方式

JS中常见的几种数据类型 基本类型&#xff1a;string、boolean、number特殊类型&#xff1a;undefined和null3、引用类型&#xff1a;Array、Date、RegExp… typeof typeof检测基本数据类型时没有问题&#xff0c;但是当其对引用类型进行检测时&#xff0c;会返回object&…

js 精确判断对象的类型

在 JavaScript 里使用 typeof 来判断数据类型&#xff0c;只能区分基本类型&#xff0c;即 “number”&#xff0c;”string”&#xff0c;”undefined”&#xff0c;”boolean”&#xff0c;”object” 五种。 对于数组、函数、对象来说&#xff0c;其关系错综复杂&#xff0c…

JavaScript——判断js数据类型(类型检测)

判断js数据类型&#xff0c;也就是我们说的类型检测&#xff0c;本文提供五种方法&#xff0c;分别是typeof运算符、instanceof操作符、Object.prototype.toString方法、constructor属性、duck type。 1、typeof运算符 typeof算是最常见的了&#xff0c;使用它会返回一个字符…

js判断数据类型常用的6种方法

js判断数据类型常用的方法,不论在开发中开始在面试中,都是经常遇到的问题,尤其是在面试时,当面试官问及js判断数据类型的方法时,回答的越多,说明掌握的广度跟深度越多,感觉自己逼格也越高.废话不多说了,进入正题 常见的判断js数据类型的方法有如下几种 1.最常见的判断方法&am…

js判断数据类型的几种方法

第一种&#xff1a;Object.prototype.toString()方法&#xff1a; 注意这里是Object原型对象上的toString方法才能判断&#xff0c;其他原型对象上的不能判断&#xff0c;如 Array原型对象上的toString方法是判断不了的&#xff0c;因为它重写了toString方法。 要使用Object…

js判断数据类型(全)

js基本数据类型 基本数据类型&#xff1a; String、Number、Boolean、Undefined未定义、null空、symbol表示独一无二的值&#xff08;es6引入的新的原始数据基本类型&#xff09;。 Number&#xff1a;返回的特殊值NaN&#xff0c;表示不是数值&#xff0c;用于表示本来要返回…

判断JS数据类型的五种方法

JavaScript 中常见的几种数据类型&#xff1a; 目录 JavaScript 中常见的几种数据类型&#xff1a; 一、分类 二、判断 1、typeof null既然属于基本数据类型&#xff0c;为什么用typeof返回的是object呢&#xff1f; js小数运算出现的问题(精度丢失) 解决方法一 解决方…

Linux 文件类型及常用命令(2)(cp、mv、cat、more、less、head、tail、chmod、getenforce)

1、命令 cp&#xff1a;拷贝&#xff08;类似于Windows系统的复制&#xff0c;但区别是可以重命名&#xff09; 拷贝文件、目录&#xff08;需要使用 -r 参数&#xff09;&#xff0c;可以重命名。 2、命令 mv&#xff1a;移动或重命名 ①如果是在当前目录下移动&#xff0c…