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

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.

相关文章:

  • Attention Is All You Need论文阅读笔记
  • Flutter下的一点实践
  • 在Mathematica中求解带阻尼的波方程
  • 国内连接速度较快的常用 Yum 源及其具体配置方法
  • DMBOK对比知识点整理(4)
  • 重温经典算法——插入排序
  • 纤维组织效应偏斜如何影响您的高速设计
  • ST MCU CAN模块--TTCAN模式浅析
  • Windows10下搭建sftp服务器(附:详细搭建过程、CMD连接测试、连接失败问题分析解决等)
  • 【大模型MCP】MCP 深度解析:AI 时代的「USB-C」接口——原理、对比、实战代码与行业落地
  • 【HTML-15】HTML表单:构建交互式网页的基石
  • 防范DDoS攻击,服务器稳定性崩溃的根源与高效防御对策
  • 【Java】线程池的实现原理是怎样的?CPU密集型任务与IO密集型任务的区别?
  • MinVerse 3D触觉鼠标的技术原理与创新解析
  • 从零起步认知微内核操作系统(AGI)
  • 线程安全问题的原因和解决方案
  • pikachu靶场通关笔记08 XSS关卡04-DOM型XSS
  • pikachu靶场通关笔记07 XSS关卡03-存储型XSS
  • GitCode镜像门法律分析:PL协议在中国的司法实践
  • 告别RAG上下文丢失:Late Chunking 与 Contextual Retrieval 深度对比解析
  • 做net网站/厦门seo网络优化公司
  • 做动态logo网站/潍坊在线制作网站
  • 日照网站开发/淘宝数据查询
  • 做推广网站排名/网络防御中心
  • 网站建设制作多少钱/网络营销专业学校排名
  • 电子商务网站优点/东莞网站seo优化托管