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

[QtADS]解析demo.pro

分析的部分来自腾讯元宝

ADS_OUT_ROOT = $${OUT_PWD}/..TARGET = AdvancedDockingSystemDemo
DESTDIR = $${ADS_OUT_ROOT}/lib
QT += core gui widgets quick quickwidgetsinclude(../ads.pri)lessThan(QT_MAJOR_VERSION, 6) {win32 {QT += axcontainer}
}CONFIG += c++14
CONFIG += debug_and_release
DEFINES += QT_DEPRECATED_WARNINGS
RC_FILE += app.rcadsBuildStatic {DEFINES += ADS_STATIC
}HEADERS += \MainWindow.h \StatusDialog.h \ImageViewer.h \RenderWidget.hSOURCES += \main.cpp \MainWindow.cpp \StatusDialog.cpp \ImageViewer.cpp \RenderWidget.cppFORMS += \mainwindow.ui \StatusDialog.uiRESOURCES += demo.qrcLIBS += -L$${ADS_OUT_ROOT}/libINCLUDEPATH += ../src
DEPENDPATH += ../src

一、项目配置解析​

  1. ​输出路径与目标设置

ADS_OUT_ROOT = $${OUT_PWD}/..
TARGET = AdvancedDockingSystemDemo
DESTDIR = $${ADS_OUT_ROOT}/lib
  • ADS_OUT_ROOT​:定义项目输出根目录构建目录的上一级(通常用于集中管理多个项目的输出)。

  • TARGET​:生成的可执行文件名为 AdvancedDockingSystemDemo

  • DESTDIR​:最终输出路径为 ../lib(​​需确认是否应为 bin​,因为可执行文件通常放入 bin而非 lib)。

demo对应$${OUT_PWD}

Qt模块依赖

QT += core gui widgets quick quickwidgets
lessThan(QT_MAJOR_VERSION, 6) { win32 { QT += axcontainer } }
  • 核心模块:coreguiwidgets(基础UI)。

  • 动态界面:quick(QML)和 quickwidgets(混合QWidget与QML)。

  • ​Qt5兼容性​​:在Windows下且Qt版本低于6时,启用 axcontainer(支持ActiveX控件)

构建与编译选项

CONFIG += c++14 debug_and_release
DEFINES += QT_DEPRECATED_WARNINGS
RC_FILE += app.rc
  • ​C++14标准​​:强制使用C++14编译。

  • ​双模式构建​​:同时生成Debug和Release版本(debug_and_release)。

  • ​弃用警告​​:启用Qt废弃API的编译警告(QT_DEPRECATED_WARNINGS)。

  • ​资源文件​​:app.rc用于定义Windows程序的图标、版本信息等元数据。

ADS库集成

include(../ads.pri)
adsBuildStatic { DEFINES += ADS_STATIC }
  • ads.pri​:引入高级停靠系统(ADS)的配置,可能包含头文件路径、库链接等。

  • ​静态库支持​​:若 adsBuildStatic为真,定义 ADS_STATIC宏(需确保ADS库以静态方式编译)。

二、文件与资源管理​

  1. ​代码文件组织

HEADERS += MainWindow.h StatusDialog.h ImageViewer.h RenderWidget.h
SOURCES += main.cpp MainWindow.cpp StatusDialog.cpp ImageViewer.cpp RenderWidget.cpp
FORMS += mainwindow.ui StatusDialog.ui
RESOURCES += demo.qrc
  • 头文件/源文件​​:包含主窗口、状态对话框、图像查看器和渲染控件等核心功能类。

  • ​UI表单​​:mainwindow.ui和 StatusDialog.ui由Qt Designer生成,用于界面布局。

  • ​资源文件​​:demo.qrc管理图标、QML文件等嵌入式资源

依赖路径设置

INCLUDEPATH += ../src
DEPENDPATH += ../src
LIBS += -L$${ADS_OUT_ROOT}/lib
  • 头文件搜索​​:添加 ../src到包含路径(暗示ADS库源码位于上级目录)。

  • ​库链接​​:指定链接库搜索路径为 ../lib(需确保 lib中存在 libAdvancedDockingSystem.a或 .dll

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

相关文章:

  • HarmonyOS NDK的JavaScript/TypeScript与C++交互机制
  • Electron自定义菜单栏及Mac最大化无效的问题解决
  • XML头部声明发送者信息的实现方法
  • C# 微软依赖注入 (Microsoft.Extensions.DependencyInjection) 详解
  • CV 医学影像分类、分割、目标检测,之【肝脏分割】项目拆解
  • windows常用的快捷命令
  • 机器学习实战·第三章 分类(2)
  • docker 容器内编译onnxruntime
  • git clone 支持在命令行临时设置proxy
  • CV 医学影像分类、分割、目标检测,之【腹腔多器官语义分割】项目拆解
  • 何解决PyCharm中pip install安装Python报错ModuleNotFoundError: No module named ‘json’问题
  • Video_AVI_Packet(2)
  • 基于RTSP|RTMP低延迟视频链路的多模态情绪识别系统构建与实现
  • 日志数据链路的 “搬运工”:Flume 分布式采集的组件分工与原理
  • 进阶向:Python编写自动化邮件发送程序
  • Jenkins一直无法启动,怎么办?
  • 论文分享 | Flashboom:一种声东击西攻击手段以致盲基于大语言模型的代码审计
  • 守拙以致远:个人IP的长青之道|创客匠人
  • Hive 创建事务表的方法
  • 自建知识库,向量数据库 体系建设(四)之文本向量与相似度计算——仙盟创梦IDE
  • java中list的api详细使用
  • 无人机航拍数据集|第15期 无人机人员目标检测YOLO数据集4923张yolov11/yolov8/yolov5可训练
  • pt-online-schema-change 全解析:MySQL 表结构变更的安全之道
  • clickhouse集群的安装与部署
  • Vue3 使用 echarts 甘特图(GanttChart)
  • Java -- Vector底层结构-- ArrayList和LinkedList的比较
  • C++主流string的使用
  • 工业元宇宙:迈向星辰大海的“玄奘之路”
  • C++ 类和对象4---(初始化列表,类型转化,static成员)
  • nuxt相比于vue的优点