分析的部分来自腾讯元宝
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
一、项目配置解析
-
输出路径与目标设置
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 } }
-
核心模块:
core
、gui
、widgets
(基础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库以静态方式编译)。
二、文件与资源管理
- 代码文件组织
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.ui
和StatusDialog.ui
由Qt Designer生成,用于界面布局。 -
资源文件 :
demo.qrc
管理图标、QML文件等嵌入式资源
依赖路径设置
cpp
INCLUDEPATH += ../src
DEPENDPATH += ../src
LIBS += -L$${ADS_OUT_ROOT}/lib
-
头文件搜索 :添加
../src
到包含路径(暗示ADS库源码位于上级目录)。 -
库链接 :指定链接库搜索路径为
../lib
(需确保lib
中存在libAdvancedDockingSystem.a
或.dll
)
