- 不想太深入地去看qmake,可是,左等,右等,总不见Qt新的构建系统有什么新消息。还是整理一下qmake吧,由于没什么主题,还不知道本文最终会乱到什么程度。
注:你可能会对下面的内容感兴趣。
变量
$$varName $${varName}
|
qmake工程文件内定义变量的值
|
$$(varName)
|
qmake运行时,环境变量的值
|
$(varName)
|
makefile被处理时,环境变量的值
|
$$[varName]
|
Qt配置选项的值
|
${varName}
|
你可能见过这个用法,但本文不讨论这个东西,以后用到时会提及
|
这4中用法区别何在?没有例子我还真说不明白...
$$varName
例子:
projectname = dbzhang
FULL1 = $$projectname/800
FULL2 = $${projectname}800
!build_pass:message($$FULL2)
运行qmake时,输出结果是
Project MESSAGE: dbzhang/800 dbzhang800
- 何时加大括号?当变量和后面的字符连接到一块的时候。
- build_pass 干嘛用的?自己试试看吧,如果没有它,同样的消息在windows下会被输出3次(因为会生成3个makefile文件,每个一次)。
$$(varName)
环境变量,就是大家通常说得环境变量。例子:
message($$(PATH))
运行qmake时,结果:
Project MESSAGE: /usr/bin:/home/debao/qt-labs/qt5/qtbase/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
$(varName)
makefile被处理时,环境变量的值?如何理解??
看例子:
INCLUDEPATH += $(MYINCLUDEPATH)
执行qmake
$ export MYINCLUDEPATH="/home/dbzhang800/include"
$ qmake test.pro
生成的makefile:
...
INCPATH = -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I$(MYINCLUDEPATH) -I.
...
为了对比,可以将单$符号,改成$$再试试看看,运行命令,结果:
...
INCPATH = -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I/home/dbzhang800/include -I.
...
$$[varName]
Qt配置选项的值?何解??
debao@ubuntu:~/ttt/qmake-t1$ qmake -query
QT_INSTALL_PREFIX:/usr
QT_INSTALL_DATA:/usr/share/qt4
QT_INSTALL_DOCS:/usr/share/qt4/doc
QT_INSTALL_HEADERS:/usr/include/qt4
QT_INSTALL_LIBS:/usr/lib
QT_INSTALL_BINS:/usr/bin
...
- 有什么用呢?比如,我们编译一个动态库,想将dll放置到Qt的bin目录下(供其它程序使用):
win32:{
DLLDESTDIR = $$[QT_INSTALL_BINS]
QMAKE_DISTCLEAN += $$[QT_INSTALL_BINS]\\dbzhang800.dll
}
- 除了这些还有其他值么?恩,你可以自己设置一些值,比如
$ qmake -set dbzhang 800
然后就可以在pro文件内用 $$[dbzhang] 了
注:在Qt5下,有qmake-unsetdbzhang可以取消设置,在Qt4下没有 unset!
注:设置值是通过QSettings保存的。你应该知道保存在何处了,呵呵
QSettings(QSettings::UserScope, "Trolltech", "QMake");
晕死,4个这东西竟然写了这么长。只好本文标题中加个(一),慢慢写二三四了。
参考
分享到:
相关推荐
QT项目,C++,该工具是windows环境下的工具,将QT的工程项目文件.pro,转换成CMakeLists.txt,也就是说将qmake转换成cmake,使用方法,解压缩后,打开 Windows PowerShell ,进入到解压缩后的目录,再使用命令 ...
`qmake`是Qt框架提供的一个构建工具,主要用于管理Qt项目的编译过程。然而,随着C++和软件工程的发展,`cmake`逐渐成为更通用、跨平台的构建系统,能够支持多种编译器和项目结构。本篇文章将详细介绍如何将Qt项目的`...
使用qmake,开发者可以创建一个简单的项目文件,并且运行qmake生成适合的Makefile。qmake会注意所有的编译器和平台的依赖性,可以把开发者解放出来只关心他们的代码。 安装qmake ---------------- qmake可以在安装...
在软件开发过程中,...总的来说,Makefile适合大型项目或需要高度定制的构建过程,而qmake则更适合Qt开发者,提供了一种简洁的构建解决方案。在实际开发中,根据项目需求和团队习惯选择合适的工具是至关重要的。
QMake简化了这一过程,允许开发者仅需维护一个简单的项目文件(.pro),而QMake会根据该文件自动生成适用于各种目标平台的Makefile。这样一来,开发者就能专注于代码逻辑而非编译细节。 #### 二、QMake与Qt的关系 ...
这个是单独的qmake.exe工具,如果不想安装qt的相关的包仅仅想使用QT creator。
**qmake**是Qt提供的一个自动化构建工具,用于将项目的配置信息转换成特定平台下的Makefile文件,从而实现项目的编译、链接等构建过程的自动化。在QT4环境下,qmake的使用尤为重要,因为它能够简化复杂的构建流程,...
QXMPP库是一个用C++编写的轻量级、易于使用的XMPP框架,它与Qt库紧密结合,利用qmake构建系统,方便在Qt环境中开发XMPP应用。这个源码包特别提到了使用qmake版本,意味着它适用于那些已经安装了Qt和Visual Studio...
在这个文件中,你需要将第一行指向`qmake`的实际安装位置。例如,如果`qmake`位于`/home/zhuquan/Qt5.7.0/5.7/gcc_64/bin`,则需要将文件内容更新为这一路径。由于`default.conf`可能是只读的,需要使用`sudo chmod ...
使用qmake,开发者创建一个简单的“项目”文件并且运行qmake生成适当的Makefile。qmake会注意所有的编译器和平台的依赖性,可以把开发者解放出来只关心他们的代码。Trolltech公司使用qmake作为Qt库和Qt所提供的工具...
**qmake** 是 Trolltech 公司开发的一款自动化生成 Makefile 的工具,适用于多种平台和编译器。它简化了跨平台项目的构建流程,使得开发者能够专注于编写代码而非管理构建过程。qmake 的核心功能包括自动生成针对...
#### 一、qmake概述与作用 qmake是Qt框架下的一款强大且灵活的构建工具,旨在简化Qt应用程序的编译流程。它通过解析跨平台的`.pro`文件来生成特定于操作系统的Makefile,从而自动化处理编译任务。qmake不仅简化了...
Qt5.14.2交叉编译配套qmake.conf文件
在软件开发领域,Qt是一个非常流行的跨平台应用程序开发框架,而qmake和Qt Creator是Qt开发环境中的两个重要工具。本教程将深入探讨这两个工具的使用,帮助开发者更好地理解和利用它们进行高效开发。 **qmake简介**...
#### 一、qmake简介 **qmake** 是一个跨平台的构建工具,由 **Trolltech**(现为 **Qt Group**)开发,旨在简化不同操作系统上的编译过程。它通过分析项目文件(.pro 文件)来自动生成 Makefile 或其他构建系统的...
QMake 是 Qt 开发框架中的一个重要工具,用于自动化构建过程,帮助开发者生成项目文件,使得构建应用程序变得更加简单。本篇将深入探讨 QMake 的使用技巧和常见问题的解决方法。 ### 1. **QMake 基础** QMake 是一...
Qmake是Qt的一部分,是一个自动构建系统。它通过读取名为.pro文件的项目配置,生成针对不同平台的Makefile或构建脚本,简化了构建过程。Qmake的使用避免了手动配置编译选项和依赖关系的繁琐工作,尤其对于包含大量...
qmake用户手册,感兴趣的朋友,可以下载看看,不需要资源分
#### 一、qmake简介 **qmake** 是由 Trolltech 公司(现 Qt Group)开发的一款自动化构建工具,主要用于简化跨平台项目的 Makefile 创建过程。它允许开发者通过创建一个简单的项目文件(通常以 .pro 文件扩展名),...
qmake是Qt提供的一个自动化构建工具,用于生成项目所需的Makefile文件,使得项目能够被编译、链接并运行。它通过解析用户提供的.qmake文件(通常为.pro文件),自动生成Makefile,从而简化了编译过程。qmake支持多种...