[QtADS]解析demo.pro

分析的部分来自腾讯元宝

复制代码
ADS_OUT_ROOT = $${OUT_PWD}/..

TARGET = AdvancedDockingSystemDemo
DESTDIR = $${ADS_OUT_ROOT}/lib
QT += core gui widgets quick quickwidgets

include(../ads.pri)

lessThan(QT_MAJOR_VERSION, 6) {
    win32 {
        QT += axcontainer
    }
}

CONFIG += c++14
CONFIG += debug_and_release
DEFINES += QT_DEPRECATED_WARNINGS
RC_FILE += app.rc

adsBuildStatic {
    DEFINES += ADS_STATIC
}


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


LIBS += -L$${ADS_OUT_ROOT}/lib


INCLUDEPATH += ../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库集成

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

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

二、文件与资源管理​

  1. ​代码文件组织
cpp 复制代码
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.uiStatusDialog.ui由Qt Designer生成,用于界面布局。

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

依赖路径设置

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

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