当前位置: 首页 > article >正文

Cmake编译glog成功并在QT中测试成功步骤

glog是开源的日志记录系统,下载地址GitHub - google/glog: C++ implementation of the Google logging module

跟gflags有点相似,编译和测试过程比较周折,所以记录下来具体的编译和测试步骤。

编译环境:Windows+Cmake+Vs2022+Qt5.14.2

1、下载源码:GitHub - google/glog: C++ implementation of the Google logging module,解压缩下载文件到D:\glog-master。

2、打开Cmake软件,设置源码位置:D:\glog-master,设置构建位置:D:/glog-master/build_vs2022x64,点击【Configure】按钮进行配置如下:

配置核心选项:

2.1 CMAKE_INSTALL_PREFIX路径手动设置为D:\glog-master\install

2.2 不勾选WITH_UNWIND 选项。

2.3 先后两次生成和编译对应的静态库和动态库。

不生成动态库文件配置如下图:

生成动态库文件glog.dll文件配置如下图:

3、编译源码:点击【Configure】 按钮+【Generate】按钮后,再点击【Open Project】按钮,会使用VS2022打开glog.sln解决方案。

在VS2022软件中,设置编译方式为Release+x64模式,选择解决方案-右键选择【重新生成解决方案】菜单,系统编译成功。

在VS2022软件中,选择INSTALL项目,右键选择【重新生成】,则在Cmake中配置的安装位置【D:\glog-master\install】下会生成对应的包含文件和库文件等。

4、由于在QT中使用glog对应的库文件时会出现错误提示,因此需要在VS2022中编译glog项目的时候,选择解决方案中的glog项目和glog_internal项目,分别设置项目属性:【C/C++】-【代码生成】-【运行库】设置为【多线程 (/MT)】

5、在QT中新建项目testGlog(编译器为【msvc2017+x64】,项目路径为【D:\QtCode\testGlog】),拷贝在VS2022软件中生成的【D:\glog-master\install】目录下的所有glog相关的驱动文件夹到【D:\QtCode\testGlog\glog】目录下。

6、在QT中修改testGlog.pro文件中的配置项,新增glog库引用如下:

#MSVC编译器防止中文乱码设置
win32-msvc*: {QMAKE_CFLAGS *= /utf-8QMAKE_CXXFLAGS *= /utf-8
}CONFIG(debug, debug|release) {QMAKE_CFLAGS_DEBUG += /MTdQMAKE_CXXFLAGS_DEBUG += /MTd
}CONFIG(release, debug|release) {QMAKE_CFLAGS_RELEASE += /MTQMAKE_CXXFLAGS_RELEASE += /MTQMAKE_LFLAGS_RELEASE   += /RELEASE /NODEFAULTLIB:msvcrt.lib
}INCLUDEPATH += $$PWD/glog/include
DEPENDPATH  += $$PWD/glog/include
LIBS += -L$$PWD/glog/lib -lglog

7、修改main.cpp文件代码如下,测试成功。

#define GLOG_NO_ABBREVIATED_SEVERITIES
#define GLOG_EXPORT
#define GLOG_NO_EXPORT
#include <windows.h>
#include <glog/logging.h>using namespace google;
int main(int argc, char* argv[]) {google::InitGoogleLogging("test");google::SetLogDestination(google::GLOG_INFO, "../log/logtestInfo");google::SetLogDestination(google::GLOG_ERROR, "../log/logtestDebug");//不为ERROR建立日志文件google::SetStderrLogging(google::GLOG_INFO);google::SetStderrLogging(google::GLOG_ERROR);google::LogToStderr();for (int i = 0; i < 100; ++i){LOG(INFO) << "TEST" << i << " cookies";}google::ShutdownGoogleLogging();
}

8、运行测试项目、拷贝驱动文件【D:\glog-master\install\bin\glog.dll】到【D:\QtCode\testGlog\Release\release】目录下,再次运行,测试OK.

http://www.lryc.cn/news/2393783.html

相关文章:

  • AI绘画提示词:从零开始掌握Prompt Engineering的艺术
  • xhr、fetch和axios
  • lcd-framebuffer驱动开发参考文章
  • 2025吉林ccpc【部分题解】
  • PowerDesigner通过SQL反向生成类图
  • 【appium】环境安装部署问题记录
  • 【bug排查记录】由Redission配置引发的Satoken血案
  • 深入理解 MySQL 隔离级别:理论与实战
  • MAC程序签名遇到的问题
  • 华为OD机试真题——宜居星球改造计划(2025A卷:200分)Java/python/JavaScript/C++/C语言/GO六种最佳实现
  • C#实现图片缩略图生成:多种模式详解与实践
  • Linux下基本指令的介绍
  • 零基础开始的网工之路第十四天------Linux程序管理
  • SIGGRAPH 2025 | 快手可灵团队提出3D感知的电影级文本到视频生成框架CineMaster
  • 历年西安电子科技大学计算机保研上机真题
  • 利用openwrt路由器和随身WIFI搭建CPE
  • 科学智能赋能空间科学研究(2):AI4S 范式下空间科学实验的核心挑战
  • 计算机网络学习(九)——CDN
  • Axure设计案例——科技感渐变线性图
  • 【Opencv+Yolo】Day2_图像处理
  • 嵌入式开发学习(第二阶段 C语言笔记)
  • STUSB4500 PPS(PD3.0)快充SINK模块——应用 解析
  • Android全局网络监控最佳实践(Kotlin实现)
  • 从认识AI开始-----解密门控循环单元(GRU):对LSTM的再优化
  • Docker系列(五):ROS容器化三叉戟 --- 从X11、Wayland到DockerFile实战全解析
  • 【位运算】常见位运算总结
  • Delphi 导入excel
  • 5G RedCap是什么-与标准5G的区别及支持路由器推荐
  • 纯html,js创建一个类似excel的表格
  • 如何使用windows下的vscode连接到本地虚拟机的linux