[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
一、项目配置解析
输出路径与目标设置
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库集成
include(../ads.pri)
adsBuildStatic { DEFINES += ADS_STATIC }
ads.pri
:引入高级停靠系统(ADS)的配置,可能包含头文件路径、库链接等。静态库支持:若
adsBuildStatic
为真,定义ADS_STATIC
宏(需确保ADS库以静态方式编译)。
二、文件与资源管理
代码文件组织
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
)