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

Qt5 cmake引用private头文件

Qt5 cmake引用private头文件

如何引用Qt的qzipreader_p.h头文件 、xlsxzipreader_p.h头文件

使用 target_include_directories

target_include_directories(TestQtXlsx PRIVATE
                           ${Qt${QT_VERSION_MAJOR}Gui_PRIVATE_INCLUDE_DIRS}
                           ${Qt${QT_VERSION_MAJOR}Xlsx_PRIVATE_INCLUDE_DIRS}
                        )

注:Qt Xlsx是第三方库,安装请参照Qt Xlsx安装教程

完整的例子

CMakeLists.txt

cmake_minimum_required(VERSION 3.14)

project(TestQtXlsx LANGUAGES CXX)

set(CMAKE_INCLUDE_CURRENT_DIR ON)

set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)

set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

find_package(QT NAMES Qt6 Qt5 COMPONENTS Core Gui Xlsx REQUIRED)
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Core Gui Xlsx  REQUIRED)


add_executable(TestQtXlsx
  main.cpp
)

target_include_directories(TestQtXlsx PRIVATE
                           ${Qt${QT_VERSION_MAJOR}Gui_PRIVATE_INCLUDE_DIRS}
                           ${Qt${QT_VERSION_MAJOR}Xlsx_PRIVATE_INCLUDE_DIRS}
                        )

target_link_libraries(TestQtXlsx Qt${QT_VERSION_MAJOR}::Core)
target_link_libraries(TestQtXlsx Qt${QT_VERSION_MAJOR}::Xlsx)
target_link_libraries(TestQtXlsx Qt${QT_VERSION_MAJOR}::Gui)

C++源码

#include <QCoreApplication>
#include <QDate>
#include <QTime>
#include <QDebug>
#include "xlsxdocument.h"
#include <private/qzipreader_p.h>
#include <private/xlsxzipreader_p.h>

static void test_xlsx_zip()
{
    //定义一个QXlsx文档对象
    try {
        QXlsx::ZipReader reader("test3_example.xlsx");
        bool ret = reader.exists();
        QStringList paths = reader.filePaths();
        qDebug()<<"ret="<<ret;
        qDebug()<<"paths="<<paths;
        QXlsx::Document xlsx("test3_example.xlsx");
        qDebug()<<"======";

        QZipReader qreader("test3_example.xlsx");
        bool ret2 = qreader.isReadable();
        qDebug()<<"ret2="<<ret2;
        int status = qreader.status();
        qDebug()<<"status="<<status;
        QVector<QZipReader::FileInfo> qvec = qreader.fileInfoList();
        qDebug()<<"qvec size="<<qvec.size();


    }
    catch (...) {
        qDebug()<<"Unknown error";
    }

}

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    
    test_xlsx_zip();

    return a.exec();
}

参考文献:

Qt5 cmake引用private头文件
qt modules public internal 私有头文件 private
Qt 自带的压缩QZipWriter和解压QZipReader详解~含Demo
QT QZipReader改进,以支持大于2G的zip文件
升级到qt6.6.2后,提示QZipReader和QZipWriter两个类不存在了的解决方法


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

相关文章:

  • springboot项目对数据库密码加解密
  • Redis热点数据管理全解析:从MySQL同步到高效缓存的完整解决方案
  • 【论文复现】农作物病害分类(Web端实现)
  • 服务器证书原理
  • 重温设计模式--命令模式
  • WPF自定义窗口 输入验证不生效
  • scrapy 融合selenium
  • web的五个Observer API
  • 过滤掉list中两个连续的元素
  • C# 文件系统I/O操作--什么是I/O
  • day14-补充静态网卡配置
  • git 提交代码无法连接:Failed to connect to github.com port 443 after 21060 ms
  • 数据结构:双向循坏链表
  • 一文搞懂MYSQL、SQL、SQLServer、SQLyog的区别和联系
  • 英语四六级备考必备:2015-2024年历年真题+解析全汇总
  • 最新高性能多目标优化算法:多目标麋鹿优化算法(MOEHO)求解LRMOP1-LRMOP6及工程应用---盘式制动器设计,提供完整MATLAB代码
  • 最新高性能多目标优化算法:多目标麋鹿优化算法(MOEHO)求解GLSMOP1-GLSMOP9及工程应用---盘式制动器设计,提供完整MATLAB代码
  • 利用代码程序计算数学函数的泰勒展开式(MATLAB推导函数泰勒展开式+Python推导函数泰勒展开式)
  • springboot/ssm个人博客系统Java代码编写web在线博客相册管理项目
  • 垂起固定翼无人机大面积森林草原巡检技术详解
  • 详解MySQL中 MVCC
  • 【C语言】指针数组、数组指针、函数指针、指针函数、函数指针数组、回调函数
  • vscode 识别git目录
  • 探索大语言模型的世界:入门指南
  • vue中proxy代理配置(测试一)
  • 【HarmonyOS之旅】HarmonyOS开发基础知识(二)