什么视频直播网站做挣钱,wordpress 门户主题,靖州建设局网站,上海市建设安全协会网站王夑晟QT学习笔记-QT多项目系统中如何指定各项目的编译顺序背景环境解决思路具体操作背景
为了更好的复用程序功能以及更优雅的管理程序#xff0c;有经验的程序员通常要对程序进行分层和模块化设计。在QT/C这个工具中同样可以通过创建子项目的方式对程序进行模块化#xff0c;在这…
QT学习笔记-QT多项目系统中如何指定各项目的编译顺序背景环境解决思路具体操作背景
为了更好的复用程序功能以及更优雅的管理程序有经验的程序员通常要对程序进行分层和模块化设计。在QT/C这个工具中同样可以通过创建子项目的方式对程序进行模块化在这种组织方式中为了更好的复用代码往往会把多个地方使用的程序放入一个共享库中然后在其他库或程序中进行引用。如果我们不指定各项目的编译顺序很有可能出现在编译某个项目时而这个项目引用依赖的某个项目还未被编译这时就会出现编译错误从而导致编译失败。
环境
QT版本QT5.15.2 操作系统windows 10 专业版
解决思路
那么如何解决这个问题呢最好的方式就是能够先编译被引用依赖的项目那么这个编译顺序在QT中是在哪指定的呢答案是.pro文件中。
具体操作
1、首先看一个QT的多项目子项目的.pro文件内容如下
# 以下模版说明当前项目是有子项目的项目
TEMPLATE subdirs
# 当前项目包含的子项目
SUBDIRS \a3lib \common \plc \test我实际的引用依赖关系是 test 引用 plc就是说在编译test之前需要先编译plc才行 plc 引用 common就是说在编译plc之前需要先编译common才行 common 引用 a3lib就是说在编译common之前需要先编译a3lib才行 默认各子项目a3lib、common、plc、test的编译是没有顺序的。 2、要想让QT按上面的顺序进行编译只需在.pro文件中增加CONFIG ordered就可以。 CONFIG ordered 如下
# 以下模版说明当前项目是有子项目的项目
TEMPLATE subdirs
# 指定工程的编译顺序
CONFIG ordered
# 当前项目包含的子项目
SUBDIRS \a3lib \common \plc \test