版权声明
请尊重原创作品。转载请保持文章完整性,并以超链接形式注明原始作者“tingsking18”和主站点地址,方便其他朋友提问和指正。
下面是QT Assistant中关于QT变量的说明:
If the CONFIG variable contains the qt value, qmake's support for Qt applications is enabled. This makes it possible to fine-tune which of the Qt modules are used by your application. This is achieved with the QT variable which can be used to declare the required extension modules. For example, we can enable the XML and network modules in the following way:
CONFIG += qt
QT += network xml
Note that QT includes the core and gui modules by default, so the above declaration adds the network and XML modules to this default list. The following assignment omits the default modules, and will lead to errors when the application's source code is being compiled:
QT = network xml # This will omit the core and gui modules.
If you want to build a project without the gui module, you need to exclude it with the "-=" operator. By default, QT contains both core and gui, so the following line will result in a minimal Qt project being built:
QT -= gui # Only the core module is used.
The table below shows the options that can be used with the QT variable and the features that are associated with each of them:

Note that adding the opengl option to the QT variable automatically causes the equivalent option to be added to the CONFIG variable. Therefore, for Qt applications, it is not necessary to add the opengl option to both CONFIG and QT.
我解释一下:QT缺省使用了core和gui库。我们在$QT/mkspecs/default/qmake.conf中可以看到有
QT+= core gui
这就是缺省为QT变量赋的值。
同样在$QT/mkspecs/win32-msvc/qmake.conf中也可以看到
QT+= core gui的定义。
当我们需要使用除core和gui之外的库的时候。我们就需要:
QT +=webkit类似这样的来使QT获取webkit的库。
我们来看$QT/mkspecs\features\qt.prf
# As order does matter for static libs, we reorder the QT variable here
TMPLIBS = webkit phonon dbus testlib script svg qt3support sql xmlpatterns xml opengl gui network core
for(QTLIB, $$list($$TMPLIBS)) {
contains(QT, $$QTLIB): QT_ORDERED += $$QTLIB
}
QT_UNKNOWN = $$QT
QT_UNKNOWN -= $$QT_ORDERED
QT = $$QT_ORDERED
for(QTLIB, $$list($$QT_UNKNOWN)) {
!contains(TMPLIBS, $$QTLIB):message("Warning: unknown QT: $$QTLIB")
}
这一段就是对QT这个变量进行重新赋值,如果我们使用的库在上述TMPLIBS定义的里面,就添加到QT变量中去。否则就warning
连接的时候需要lib文件,下面是对QTLIB进行的设置。
for(QTLIB, $$list($$lower($$unique(QT)))) {
unset(qlib_style)
!qt_debug:!qt_release {
CONFIG(debug, debug|release):qlib_style = debug
else:qlib_style = release
} else:CONFIG(qt_debug, qt_debug|qt_release) {
qlib_style = debug
} else {
qlib_style = release
}
unset(qlib)
isEqual(QTLIB, gui):qlib = QtGui
else:isEqual(QTLIB, network):qlib = QtNetwork
else:isEqual(QTLIB, xml):qlib = QtXml
else:isEqual(QTLIB, xmlpatterns):qlib = QtXmlPatterns
else:isEqual(QTLIB, opengl):qlib = QtOpenGL
else:isEqual(QTLIB, sql):qlib = QtSql
else:isEqual(QTLIB, core):qlib = QtCore
else:isEqual(QTLIB, canvas):qlib = QtCanvas
else:isEqual(QTLIB, qt3support):qlib = Qt3Support
else:isEqual(QTLIB, svg):qlib = QtSvg
else:isEqual(QTLIB, script):qlib = QtScript
else:isEqual(QTLIB, testlib):qlib = QtTest
else:isEqual(QTLIB, dbus):qlib = QtDBus
else:isEqual(QTLIB, phonon):qlib = phonon
else:isEqual(QTLIB, webkit):qlib = QtWebKit
else:message("Unknown QT: $$QTLIB"):qlib =
!isEmpty(qlib) {
target_qt:isEqual(TARGET, qlib) {
warning($$TARGET cannot have a QT of $$QTLIB)
} else {
DEFINES *= $$upper(QT_$${QTLIB}_LIB)
exists($$QMAKE_INCDIR_QT/$$qlib) {
INCLUDEPATH -= $$QMAKE_INCDIR_QT/$$qlib
INCLUDEPATH = $$QMAKE_INCDIR_QT/$$qlib $$INCLUDEPATH
}
isEqual(QTLIB, opengl):CONFIG += opengl
isEqual(QTLIB, qt3support):DEFINES *= QT3_SUPPORT
isEqual(QTLIB, testlib):CONFIG += console
isEqual(QTLIB, dbus):CONFIG += dbusadaptors dbusinterfaces
qtAddLibrary($$qlib)
}
}
}
分享到:
相关推荐
QT 中 Pro 文件使用的系统变量的说明 在 Qt 中,Pro 文件是用于生成 Makefile 的配置文件。Pro 文件中的系统变量是 qmake 用来生成 Makefile 的关键。下面是 Qt 中 Pro 文件中使用的系统变量的说明: TEMPLATE ...
2. **项目管理**:用户可以在Qt Creator中直接创建、管理和编辑.qmake.pro项目文件,直观地查看和组织项目结构。 3. **构建和调试**:IDE内嵌的构建系统支持qmake,可以直接触发编译、运行、调试等操作,方便快捷。 ...
K ”、“5”、“321465 5738”等字符串,这些可能是示例中的变量名或占位符,用于说明qmake配置文件中的某些规则或参数。 总的来说,掌握qmake对于使用QT4进行项目开发是至关重要的。它不仅简化了构建流程,还提供...
Qt Pro文件是Qt开发环境中的项目配置文件,用于管理Qt应用程序的构建过程。它使用简单易读的文本格式,包含了项目的基本信息、编译选项、链接库、源代码文件等关键设置,使得开发者能够轻松地控制项目的构建过程。在...
1. **修改pro文件**:在项目的`.pro`文件中,添加一行`FORMS += myform.ui`,这样Qt的构建系统就会知道需要处理这个Ui文件。 2. **使用qmake命令**:执行`qmake`命令,Qt的构建系统会识别后缀名为`.ui`的文件,并将...
在创建动态链接库时,我们需要在.pro文件中指定工程类型为`QMAKE_PROJECT_TYPE = lib`。接下来,我们需要定义库的类型,对于动态链接库,我们使用`QMAKE_LIB = dll`。此外,还需要声明库的名称,例如`TARGET = MyLib...
QT中的.pro文件是Qt项目的核心配置文件,它用于定义项目的属性、编译选项、源代码文件、库依赖等信息,从而指导qmake工具生成适用于不同编译系统的Makefile或者Visual Studio项目文件。以下是对.pro文件详细写法的...
### QT .pro 文件详解 #### 一、引言 在使用QT进行软件开发时,`.pro`文件扮演着至关重要的角色。它不仅定义了项目的构建规则,还包含了编译过程中的各种配置信息,使得开发者能够灵活地管理和定制构建流程。本文...
5. **添加到项目**:如果需要,脚本还可以自动更新.pro文件,将新生成的文件添加到QT项目中。 6. **权限设置**:确保新生成的文件具有正确的权限,例如读写权限。 7. **错误处理**:良好的脚本应该包含错误检查和...
### Qt Pro 文件说明 #### 一、概述 在Qt开发环境中,`.pro`文件是非常重要的组成部分,它定义了Qt项目的构建规则。通过`.pro`文件,开发者能够灵活地配置源文件、头文件、编译器选项等,从而使得项目的构建过程...
使用qmake,开发者可以创建一个简单的项目文件,并且运行qmake生成适合的Makefile。qmake会注意所有的编译器和平台的依赖性,可以把开发者解放出来只关心他们的代码。 安装qmake ---------------- qmake可以在安装...
Qt框架中的.pro文件是Qt构建系统的核心组成部分,用于定义项目的配置和编译规则。这篇文档将深入探讨.pro文件的不同属性及其在Qt项目开发中的作用。 首先,.pro文件是一个纯文本文件,通常使用QMake工具解析,它...
在Qt中,我们可以通过在pro文件中定义相关变量来创建动态库。例如,添加以下代码来创建一个名为`libMyLib`的动态库: ``` TEMPLATE = lib CONFIG += shared TARGET = mylib SOURCES += src/mylib.cpp HEADERS...
qmake 使用项目文件(.pro 文件)来确定如何生成 Makefile 文件。一个基本的 .pro 文件通常包括应用程序的源代码文件、头文件以及一些配置选项。 - **SOURCES**:用于指定源代码文件。例如: ```plaintext ...
- 设置环境变量,添加Oracle的`include`和`lib`路径到系统变量中。 ```cmd set INCLUDE=%INCLUDE%;E:\app\eAgle\product\11.2.0\dbhome_2\OCI\include set LIB=%LIB%;E:\app\eAgle\product\11.2.0\dbhome_2\OCI\...
在QT项目的.pro文件中,使用`LIBS`变量指定库的路径。例如,对于动态库,添加`LIBS += -L/path/to/library -lqxlsx`。 5. **使用QXlsx库**:现在,你可以在QT项目中导入QXlsx模块并开始编写代码。例如,`#include ...
- 使用`qmake-project`命令来生成相应的`.pro`文件。如果需要对生成的`.pro`文件进行修改,可参考以下配置: ```pro INCLUDEPATH += /usr/local/qwt/include LIBS += -L"/usr/local/qwt/lib/" -lqwt ``` 3. **...
在.pro文件中,使用`QMAKE_LFLAGS`或`LIBS`变量来添加链接库的选项。对于动态库,我们使用`-l`选项,后面跟随着库的名称。这里有一个重要的细节需要注意:在Mac OS中,`-l`后面的库名应当是创建库时的工程名,而非库...
在QT工程中,文件的管理和配置是项目构建的关键部分,其中`.pro`文件扮演着核心角色。`.pro`文件是QT项目的基础,它定义了项目的结构、编译选项以及依赖关系。通过`qmake`命令,这个文件会被解析并生成对应的...
- **QMAKESPEC**:此变量决定了QMake生成Makefile的目标平台和编译器类型。例如,如果您使用Windows和Microsoft Visual Studio,应将其设置为`win32-msvc`;如果是Solaris和g++,则应设置为`solaris-g++`。支持的...