关于Qt Creator项目中.pro文件中的相对路径

简介: 关于Qt Creator项目中.pro文件中的相对路径

介绍


.pro文件里的相对路径不全都是相对于pro文件的,有的是,有的不是。


1、一种情况下./表示.pro文件所在的目录;另一种情况下./表示构建生成目录;


1.1.是的情况


SOURCE


FORMS


HEADERS


INCLUDEPATH


DEPENDPATH 等等


这些变量中使用的./指的是.pro文件所在的目录



1.2.不是的情况


DESTDIR


OBJECTS_DIR


MOC_DIR


RCC_DIR


UI_DIR


UI_HEADERS_DIR


UI_SOURCES_DIR


win32:CONFIG(debug)


win32:CONFIG(release) 等等


这些变量中使用的./指的是构建生成目录。



2、影子构造说明


如果没有选择影子构造(shadow build),构建生成目录和.pro文件所在目录是同一个目录;


如果指定了shadow build,且指定了构建生成目录,那构建目录和.pro文件所在目录就不是同一个。


我们默认是会选择shadow build的,所以构建目录≠.pro目录。



3、subdirs:多工程多目录的情况


它们的相对路径都是针对你项目下的构建目录+子项目文件夹来的,例如


TEMPLATE = subdirs

SUBDIRS = \

   muparser \

   librecad

CONFIG += order

那么构建目录,BuildPath假如是F:\CADCAM\QCAD\src\build-LibreCAD-v1.0.4-qt4-Desktop_Qt_4_8_7_MSVC2010_32bit-Debug


于是,相对路径和绝对路径的对应关系,分别是:


---举例1---


相对,DESTDIR = bin


绝对,DESTDIR =$${BuildPath}/muparser/bin


绝对,DESTDIR =$${BuildPath}/librecad/bin


---举例2---

相对,DESTDIR = ../bin


绝对,$${BuildPath}/bin



4、.pro文件打印输出


在.pro文件,添加message函数,保存,会在“编译输出”窗口,打印出结果。


message($$PROJECT_ROOT)


message($$PWD)


message($$DESTDIR)


message($$TARGET)


Project MESSAGE: F:/CADCAM/QCAD/src/LibreCAD-v1.0.4-qt4/muparser

Project MESSAGE: F:/CADCAM/QCAD/src/LibreCAD-v1.0.4-qt4/muparser

Project MESSAGE: ../bin/lib

Project MESSAGE: muparserd


5、.pro常用的宏定义


TEMPLATE = app


HEADERS:需要包含的头文件的列表。


SOURCES:需要的源文件的列表。


FORMS:需要的.ui文件的列表。


LEXSOURCES:所有lex源文件的列表。


YACCSOURCES:所有yacc源文件的列表。


TARGET:可执行应用程序的名称。默认值为项目文件的名字。


DESTDIR:放置可执行程序目标的目录。


OBJECTS_DIR:放置obj中间文件的目录。


MOC_DIR: moc转换文件路径。


RCC_DIR: 资源文件路径。


UI_DIR:ui文件转换的路径。


RESOURCES:需要包含的资源文件。


LIBS:依赖库的路径和名称 -L{xxdirxx} -l{xxnamexx}。


LIBEXT: 产生lib的后缀。


DEFINES:应用程序所需的额外的宏定义列表。


INCLUDEPATH:应用程序所需的额外的包含路径列表。


DEPENDPATH:应用程序所依赖的搜索路径。


VPATH:寻找补充文件的搜索路径。


DEF_FILE:只有Windows需要:应用程序所要连接的.def文件。


RC_FILE:只有Windows需要:应用程序的资源文件。


RES_FILE:只有Windows需要:应用程序所要连接的资源文件。


TRANSLATIONS: 多国语言支持文件。


INSTALLS: 要安装的文件。


target.path: 安装的路径。

 


相关文章
|
4月前
|
网络协议 容器
【qt】 TCP编程小项目
【qt】 TCP编程小项目
79 0
|
4月前
【qt】如何读取文件并拆分信息?
【qt】如何读取文件并拆分信息?
43 0
|
1月前
|
存储 文件存储 数据库
【QT项目】QT项目综合练习之简易计数器(QT6+文件存储)
【QT项目】QT项目综合练习之简易计数器(QT6+文件存储)
|
1月前
|
XML 数据可视化 C语言
001 Qt_从零开始创建项目
本文是Qt专栏的第一篇,介绍了如何创建一个Qt项目。
85 4
|
3月前
|
IDE 开发工具 C++
qt creator + vs2019编译记录
本文记录了作者在使用qt creator和vs2019编译项目时遇到的困难和解决方案,包括编译环境设置、qt creator编译脚本的成功案例、不带Ninja的编译脚本问题、错误示范以及相关参考链接。
qt creator + vs2019编译记录
|
4月前
CMake自动打包--Qt项目
CMake自动打包--Qt项目
63 0
|
4月前
QT 软件打包为一个单独可执行.exe文件流程
QT 软件打包为一个单独可执行.exe文件流程
922 0
|
4月前
|
数据安全/隐私保护
【qt】考试系统项目
【qt】考试系统项目
48 0
|
5月前
|
数据安全/隐私保护 C++ 计算机视觉
Qt(C++)开发一款图片防盗用水印制作小工具
文本水印是一种常用的防盗用手段,可以将文本信息嵌入到图片、视频等文件中,用于识别和证明文件的版权归属。在数字化和网络化的时代,大量的原创作品容易被不法分子盗用或侵犯版权,因此加入文本水印成为了保护原创作品和维护知识产权的必要手段。 通常情况下,文本水印可以包含版权声明、制作者姓名、日期、网址等信息,以帮助识别文件的来源和版权归属。同时,为了增强防盗用效果,文本水印通常会采用字体、颜色、角度等多种组合方式,使得水印难以被删除或篡改,有效地降低了盗用意愿和风险。 开发人员可以使用图像处理技术和编程语言实现文本水印的功能,例如使用Qt的QPainter类进行文本绘制操作,将文本信息嵌入到图片中,
198 1
Qt(C++)开发一款图片防盗用水印制作小工具
|
4月前
|
监控 C++ 容器
【qt】MDI多文档界面开发
【qt】MDI多文档界面开发
108 0