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

ubuntu-24.04.1-desktop 中的 QT6.7 QtCreator 中集成 log4qt

ubuntu-24.04.1-desktop 中的 QT6.7 QtCreator 中集成 log4qt

  • 1 log4qt 下载
  • 2 在 ubuntu-24.04.1-desktop 中 创建Qt Qt Widgets Application 项目
    • 2.1 在 Xshell 7 中使用 Xmanager 7 打开 QTCreator
    • 2.2 在 QtCreator 中创建一个 Qt Widgets Application 项目:MyLog4qtApp
  • 3 在 ubuntu-24.04.1-desktop 的 QtCreator 中集成 log4qt
    • 3.1 将log4qt库的源码复制到 ubuntu 下 MyLog4qtApp 项目中
    • 3.2 配置项目的 .pro 文件
      • 3.2.1 增加 network 和 concurrent 模块
      • 3.2.2 静态链接 Log4Qt
      • 3.2.3 设置 LOG4QTSRCPATH
      • 3.3.4 指定 Log4Qt 头文件 和 依赖库 的搜索路径
      • 3.3.5 引入 log4qt.pri 文件
      • 3.3.6 保存 MyLog4qtApp.pro
  • 4 配置 log4qt.pri 文件
    • 4.1 打开 log4qt 下的 log4qt.pri 文件
    • 4.2 在 log4qt.pri 文件的末尾添加如下内容:
      • 4.2.1 指定 Log4Qt 头文件 和 依赖库 的搜索路径
      • 4.2.2 告诉编译器在静态链接方式下使用 Log4Qt 库
      • 4.2.3 定义 Log4Qt 版本号的主、次、修订版本号
      • 4.2.4 将 Log4Qt 的完整版本号作为预处理器定义,并将其包装在双引号内
      • 4.2.5 在 Qt 版本 5.15.0 之前被弃用的功能的警告将被禁用
      • 4.2.6 启用 Qt 框架中关于已弃用功能的警告信息。
  • 5 通过配置文件使用 Log4Qt
    • 5.1 打开 main.cpp,增加以下内容:
    • 5.2 新增 log4qt.conf
    • 5.3 将log4qt.conf放在你项目的build目录下
    • 5.5 运行后生成的日志
    • 5.6 log4qt.conf 文件内容说明
  • 6 直接使用 Log4Qt
    • 6.1 增加头文件:
    • 6.2 增加代码:

1 log4qt 下载

地址:https://github.com/MEONMedical/Log4Qt

2 在 ubuntu-24.04.1-desktop 中 创建Qt Qt Widgets Application 项目

环境的搭建可以参考:
《虚拟机 VirtualBox7 安装 ubuntu-Linux24.04.1LTS 和常用配置》
《ubuntu-24.04.1-desktop 中安装 QT6.7》

2.1 在 Xshell 7 中使用 Xmanager 7 打开 QTCreator

/home/lzc/Qt/Tools/QtCreator/bin/qtcreator.sh &

在这里插入图片描述

2.2 在 QtCreator 中创建一个 Qt Widgets Application 项目:MyLog4qtApp

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3 在 ubuntu-24.04.1-desktop 的 QtCreator 中集成 log4qt

3.1 将log4qt库的源码复制到 ubuntu 下 MyLog4qtApp 项目中

源码位置:log4qt 库的src目录下的log4qt文件夹
在这里插入图片描述
我是通过共享文件夹将Wiindows下的源码复制到 ubuntu 中的
在这里插入图片描述
在这里插入图片描述

3.2 配置项目的 .pro 文件

在这里插入图片描述

3.2.1 增加 network 和 concurrent 模块

network : 提供网络功能
concurrent : 提供多线程和并发编程的支持

QT       += core gui network concurrent

3.2.2 静态链接 Log4Qt

告诉编译器,我们是用静态链接的方法将Log4Qt 库的代码编译并链接到最终的可执行文件中

DEFINES +=LOG4QT_STATIC

3.2.3 设置 LOG4QTSRCPATH

$$PWD 是一个预定义变量,表示当前工程文件的所在路径。
这里将 LOG4QTSRCPATH 设置为当前工程文件所在路径下的 log4qt 目录。

LOG4QTSRCPATH = $$PWD/log4qt

3.3.4 指定 Log4Qt 头文件 和 依赖库 的搜索路径

INCLUDEPATH 和 DEPENDPATH: 这两个变量用于指定包含和依赖搜索路径。
通过将 Log4Qt 的不同子目录添加到这些变量中,确保编译器和构建系统能够找到 Log4Qt 源代码所在的位置。

INCLUDEPATH += -L $$LOG4QTSRCPATH \
                $$LOG4QTSRCPATH/helpers \
                 $$LOG4QTSRCPATH/spi \
                 $$LOG4QTSRCPATH/varia

DEPENDPATH  +=  $$LOG4QTSRCPATH \
            $$LOG4QTSRCPATH/helpers \
            $$LOG4QTSRCPATH/spi \
            $$LOG4QTSRCPATH/varia

3.3.5 引入 log4qt.pri 文件

include($$PWD/log4qt/log4qt.pri)

3.3.6 保存 MyLog4qtApp.pro

MyLog4qtApp.pro 保存后,QtCreator 会自动加载 log4qt 模块
在这里插入图片描述

4 配置 log4qt.pri 文件

4.1 打开 log4qt 下的 log4qt.pri 文件

在这里插入图片描述

4.2 在 log4qt.pri 文件的末尾添加如下内容:

INCLUDEPATH += -L $$PWD \
                $$PWD/helpers \
                 $$PWD/spi \
                 $$PWD/varia

DEPENDPATH  += $$PWD \
            $$PWD/helpers \
            $$PWD/spi \
            $$PWD/varia

DEFINES +=LOG4QT_STATIC
LOG4QT_VERSION_MAJOR = 1
LOG4QT_VERSION_MINOR = 6
LOG4QT_VERSION_PATCH = 0

DEFINES += LOG4QT_VERSION_MAJOR=$${
   LOG4QT_VERSION_MAJOR}
DEFINES += LOG4QT_VERSION_MINOR=$${
   LOG4QT_VERSION_MINOR}
DEFINES += LOG4QT_VERSION_PATCH=$${
   LOG4QT_VERSION_PATCH}
DEFINES += LOG4QT_VERSION_STR='\\"$${LOG4QT_VERSION_MAJOR}.$${LOG4QT_VERSION_MINOR}.$${LOG4QT_VERSION_PATCH}\\"'

DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x050F00
DEFINES += QT_DEPRECATED_WARNINGS

4.2.1 指定 Log4Qt 头文件 和 依赖库 的搜索路径

$$PWD : 表示当前工程文件的所在路径。
INCLUDEPATH 和 DEPENDPATH : 这两个变量用于指定包含和依赖搜索路径。

INCLUDEPATH += -L $$PWD \
                $$PWD/helpers \
                 $$PWD/spi \
                 $$PWD/varia

DEPENDPATH  += $$PWD \
            $$PWD/helpers \
            $$PWD/spi \
            $$PWD/varia

4.2.2 告诉编译器在静态链接方式下使用 Log4Qt 库

DEFINES +=LOG4QT_STATIC

4.2.3 定义 Log4Q


http://www.kler.cn/a/563409.html

相关文章:

  • C++ Qt常见面试题(3):Qt内存管理机制
  • uake 网络安全 reverse网络安全
  • 详解Tomcat
  • Linux进程概念 -- 环境变量
  • 鸿道Intewell操作系统的Linux实时拓展方案
  • Spring Cloud源码 - Feign源码原理分析
  • AI工具箱最新使用教程
  • vue3中怎么给图片打红框进行标注
  • Docker 搭建 MySQL 数据库
  • Spring 创建对象的流程
  • apache-maven-3.2.1
  • LeetCode热题100- 最小栈【JavaScript讲解】
  • RMII(Reduced Media Independent Interface)详解
  • Java Junit框架
  • libwebsockets交叉编译全流程
  • go-基础笔记
  • 基于SpringBoot+mybatisplus+vueJS企业数据保护系统设计与实现
  • 关于在java项目部署过程MySQL拒绝连接的分析和解决方法
  • MongoDB#常用语句
  • OpenCV开源机器视觉软件