google的日志glog安装及使用

news2024/11/26 4:38:55

1.glog

glog是google出的一个轻量级的c++日志库

2.下载及编译

下载或克隆库,我选择的是V0.6.0版本:

github.com/goolge/glog/releases/tag/v0.6.0

我用cmake编译(参考:github.com/google/glog#cmake)

按照说明步骤进行编译即可

问题一

在执行  cmake --build build命令后,出现如下错误:

undefined reference to `typeinfo for testing::Test

解决方法: 打开CmakeLists.txt, 把ON修改为OFF即可

option (WITH_GTEST "Use Google Test" OFF)

参考:

从glog-0.6.0 undefined reference to `typeinfo for testing::Test‘-CSDN博客

继续上面的步骤又出现如下错误

问题二

fatal error: glog/platform.h: 没有那个文件或目录

我发现我生成的build路径下的glog文件夹下只有5个头文件,缺少log_severity.h和platform.h两个头文件

解决方法: 在src下的glog下把那两个头文件拷贝到你的工程目录下,即可。

参考:

问题三:

fatal error: glog/logging.h :  没有那个文件或目录

解决方法:

    sudo apt-get install libgflags-dev

参考:fatal error: gflags/gflags.h: No such file or directory-CSDN博客

3.测试demo

参考:glog 测试与使用-CSDN博客

CMakeLists.txt

cmake_minimum_required(VERSION 3.0 FATAL_ERROR)

project(test_glogs)

SET(CMAKE_BUILD_TYPE Debug)

#glog

include_directories(./thirdparty)

link_directories(./thirdparty/glog/lib)

add_executable(main demo_glog/main.cpp)

target_link_libraries(main glog)

set_property(TARGET main PROPERTY CXX_STANDARD 11)

main.cpp

#include <iostream>
#include <glog/logging.h>
 
int main(int argc, char** argv)
{
 
//    FLAGS_logtostderr = 1; // 将使日志信息记录到stderr而不保存到本地日志文件中,即使你设置了FLAGS_log_dir;
 
    FLAGS_alsologtostderr = true; //除了日志文件之外是否需要标准输出
 
    google::SetLogDestination(google::GLOG_WARNING, "./log/log_warning_"); //设置 google::WARNING 级别的日志存储路径和文件名前缀
    google::SetLogDestination(google::GLOG_INFO, "./log/log_info_"); //设置 google::INFO 级别的日志存储路径和文件名前缀
 
    google::InitGoogleLogging("test_2022");//初始化
//    google::SetLogDestination(google::GLOG_INFO,"./log/aTestInfo");//设置日志文件路径,默认+时间作为生成的日志文件名
 
 
    LOG(INFO) << "info test";  //输出一个Info日志
 
 
    //有条件地中止程序
//    int a1 = 5;
//    CHECK(a1 == 4) << "a1 != 4,fail!"; //a1 != 4的时候输出后面的打印,然后中止程序退出
 
    int a2 = 3;
    int a3 = 3;
    CHECK_EQ(a2,a3)<<"---==";//a2==a3的时候才继续运行  当a2!=a3的时候输出后面的打印退出中止运行
 
 
 
    LOG(WARNING) << "warning test";  //输出一个Warning日志
    LOG(ERROR) << "error test";  //输出一个Error日志
//    LOG(FATAL) << "fatal test";  //输出一个Fatal日志,这是最严重的日志并且输出之后会中止程序
 
    std::cout<<"-------end-----"<<std::endl;
    return 0;
}

工程目录结构:

build下创建log目录

mkdir build

cd build

cmake ..

make

./main

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1048327.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【运维知识高级篇】超详细的Jenkins教程4(参数化构建+脚本传参+代码秒级发布+秒级回滚)

之前我们介绍的大多是测试环境的推送&#xff0c;在生产环境中&#xff0c;我们不会用到那么多次的构建测试&#xff0c;但是会涉及稳定版本的发布和回滚&#xff0c;我们也通过jenkins配合gitlab去实现&#xff0c;通过远程仓库的tag传递参数&#xff0c;我们把这种方式称为参…

企业会议新闻稿怎么写?会议类新闻稿如何撰写?

企业会议新闻稿是企业对外传递信息的重要途径之一&#xff0c;它能够将企业的决策、动态以及成果展示给公众。本文伯乐网络传媒将详细解析企业会议新闻稿的写作要点和技巧&#xff0c;以及常见问题及解决方法&#xff0c;帮助大家更好地完成企业会议新闻稿的撰写工作。 一、企业…

Spring Mvc的相关知识

一、初识MVC 1.Spring Mvc 是控制层的Spring框架&#xff0c;替换Servlet&#xff0c;除了它以外&#xff0c;还有 struct1和 struct2 区别&#xff1a; 1.struct1被struct2 取代 2.struct2&#xff1a;采用 prototype多例模式&#xff0c;内存消耗快&#xff0c;经常会出现内存…

RocketMQ Promethus Exporter

介绍​ Rocketmq-exporter 是用于监控 RocketMQ broker 端和客户端所有相关指标的系统&#xff0c;通过 mqAdmin 从 broker 端获取指标值后封装成 87 个 cache。 警告 过去版本曾是 87 个 concurrentHashMap&#xff0c;由于 Map 不会删除过期指标&#xff0c;所以一旦有 la…

python实现遗传算法,并绘制训练过程以及参数对比

前言: 本实验使用遗传算法寻找3维函数的最大/最小值&#xff0c;并对基因位数&#xff0c;种群初始大小&#xff0c;每次死亡个数&#xff0c;适应度计算方式这些参数进行修改&#xff0c;对比结果。 初始代码如下&#xff1a; import numpy as np import matplotlib.pyplot …

【atcoder】abc312~abc321题解

UNIQUE VISION Programming Contest 2023 Summer(AtCoder Beginner Contest 312) A 把信息存进去然后找就行。 B 枚举右上角&#xff0c;然后模拟判断即可。 C 二分这个 X X X &#xff0c;然后判断即可。 D 典型的括号类的 d p dp dp 。 d p i , j dp_{i, j} dpi,j​…

Python大数据之Python进阶(二)多任务编程-进程

文章目录 多任务编程-进程本章节学习目标本章节常用单词 多任务的介绍1. 提问2. 多任务的概念多任务3. 多任务的执行方式4. 小结 进程1. 进程的介绍2. 进程的概念3. 进程的作用4. 小结 多任务编程-进程 本章节学习目标 能够知道多任务的执行方式能够知道进程的作用能够使用多…

代理IP对企业网络安全的重要性

随着科技的快速发展&#xff0c;网络已经成为企业运营的重要工具&#xff0c;然而与发展相伴的网络安全问题也日趋复杂&#xff0c;为了降低数据和隐私泄露的风险&#xff0c;企业必须给予足够的重视&#xff0c;采取全面的网络安全应对措施来降低风险&#xff0c;维护企业形象…

VS报错无法解析的外部符号.....

VS报错无法解析的外部符号... 我们在使用VS编译器编写C代码运行时提示&#xff1a;严重性 代码 说明 项目 文件 行 禁止显示状态错误 LNK2019 无法解析的外部符号 _main&#xff0c;函数 “int __cdecl invoke_main(void)” (?invoke_mainYAHXZ) 中引用了该符号 StudyC…

webstorm卸载安装新版本后启动报错

问题描述 ​ 卸载了之前的2020版本然后安装2023版&#xff0c;安装之后打开出现如上错误 ​ 解决办法 --- 安装以下软件并在上面下载webstorm 安装&#xff1a;JetBrains Toolbox App 推测&#xff1a;应该是旧版本未卸载干净

电脑突然提示mfc140u.dll丢失,缺失mfc140u.dll无法运行程序的解决方法

在当今信息化社会&#xff0c;电脑已经成为我们生活和工作中不可或缺的一部分。然而&#xff0c;随着技术的不断发展&#xff0c;电脑也会出现各种问题。其中&#xff0c;最常见的问题之一就是“mfc140u.dll丢失”。那么&#xff0c;当我们遇到这个问题时&#xff0c;应该如何解…

GAN学习笔记

1.原始的GAN 1.1原始的损失函数 1.1.1写法1参考1&#xff0c;参考2 1.1.2 写法2 where, G Generator D Discriminator Pdata(x) distribution of real data P(z) distribution of generator x sample from Pdata(x) z sample from P(z) D(x) Discriminator network G…

Redis key基本使用

查看key的数据类型 string 、hash等 type key 查看key是否存在 exist key1 查看key的有效期 -1&#xff1a;永不过期 -2&#xff1a;已过期 设置key过期时间 expire key seconds expireat key 日期 key移动到其它库 move key index redis 默认是16个库 0,1,2,…15 切换数据库【…

箱讯科技成功闯入第八届“创客中国”全国总决赛—在国际物流领域一枝独秀

添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; 2023年9月26日&#xff0c;第八届“创客中国”数字化转型中小企业创新创业大赛决赛在贵州圆满收官。 经过初赛、复赛、决赛的激烈角逐&#xff0c;箱讯科技与众多强劲对手同台竞技&#xff0c;最终凭借出…

ROS系统通过类定义实现数据处理并重新发布在另一话题

在实际应用中&#xff0c;经常需要在同一个节点内接受数据&#xff0c;在回调函数中将数据进行处理&#xff0c;再将新数据重新发布在另一个新话题上。 实现步骤&#xff1a; 1. 定义一个数据处理类SubscribeAndPublish&#xff0c;设置2个pub成员对象和1个sub成员对象为publ…

pip安装报错 RuntimeError:Python version 2.7 or 3.4+ is required——解决办法

使用pip install安装第三方库时报错&#xff0c;错误如下&#xff1a;本机安装的是python3.11&#xff0c;已经大于3.4了&#xff0c;但还是会报错。 1、原因 由于存在字符串比较的一个bug&#xff0c;在检查python版本时&#xff0c;会逐个字符进行比较&#xff08;4>1&a…

新手学PCB画板选什么软件

Protel、AD、PADS与Allegro的比较与选择 1.Protel 早期使用较多&#xff0c;现在已经不在流行&#xff0c;少部分工程师能在使用。 优点&#xff1a;1.对新人友好&#xff0c;容易上手&#xff0c;所以学校教学首选这个。2.对电脑要求配置低&#xff0c;一般的电路设计都能实…

Qt扩展-KDDockWidgets 的使用

KDDockWidgets 的使用 一、概述二、原理说明三、代码实例1. 项目简述2. 布局源码 一、概述 KDDockWidgets 的使用相对比较简单&#xff0c;建议直接参考 其提供的例子。 二、原理说明 在这种多窗口布局显示的使用最常用的就是这两个类&#xff0c; 也就是 MainWindow 和 Doc…

No127.精选前端面试题,享受每天的挑战和学习

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云课上架的前后端实战课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入…