关于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天前
|
Windows
Qt 目录操作(QDir 类)及展示系统文件实战 & QFilelnfo 类介绍和获取文件属性项目实战
Qt 目录操作(QDir 类)及展示系统文件实战 & QFilelnfo 类介绍和获取文件属性项目实战
Qt 目录操作(QDir 类)及展示系统文件实战 & QFilelnfo 类介绍和获取文件属性项目实战
|
4天前
|
数据库 开发者 Windows
QT 项目视图(QListView&QTreeView&QTableView)和项目部件(QListWidget&QTreeWidget&QTableWidget)详解-2
QT 项目视图(QListView&QTreeView&QTableView)和项目部件(QListWidget&QTreeWidget&QTableWidget)详解
|
4天前
|
XML 设计模式 JSON
QT 项目视图(QListView&QTreeView&QTableView)和项目部件(QListWidget&QTreeWidget&QTableWidget)详解-1
QT 项目视图(QListView&QTreeView&QTableView)和项目部件(QListWidget&QTreeWidget&QTableWidget)详解
|
4天前
|
XML 数据可视化 程序员
Qt 中的项目文件解析和命名规范
Qt 中的项目文件解析和命名规范
|
4天前
|
数据可视化 开发工具 C++
Qt Creator 界面
Qt Creator 界面
|
4天前
|
数据可视化 NoSQL 编译器
Qt Creator 新建项目
Qt Creator 新建项目
|
4天前
|
算法 编译器 Linux
【Qt4 部署】ARM系统上使用Qt 4 进行开发的QWS 等环境变量部署
【Qt4 部署】ARM系统上使用Qt 4 进行开发的QWS 等环境变量部署
29 0
|
4天前
|
网络协议 C++
C++ Qt开发:QTcpSocket网络通信组件
`QTcpSocket`和`QTcpServer`是Qt中用于实现基于TCP(Transmission Control Protocol)通信的两个关键类。TCP是一种面向连接的协议,它提供可靠的、双向的、面向字节流的通信。这两个类允许Qt应用程序在网络上建立客户端和服务器之间的连接。Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍如何运用`QTcpSocket`组件实现基于TCP的网络通信功能。
49 8
C++ Qt开发:QTcpSocket网络通信组件
|
4天前
|
区块链
【qt】最快的开发界面效率——混合编程3
【qt】最快的开发界面效率——混合编程
15 1
|
4天前
【qt】最快的开发界面效率——混合编程2
【qt】最快的开发界面效率——混合编程
14 1

推荐镜像

更多