zl程序教程

您现在的位置是:首页 >  工具

当前栏目

Qt 编译方式之 qmake

Qt 方式 编译 qmake
2023-09-14 09:05:10 时间

QMake简介

Qt 的帮助文档中对于 qmake 是这样介绍的:

 本文福利,费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QSS,OpenCV,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击费领取↓↓

qmake工具有助于简化不同平台上开发项目的构建过程。它自动生成生成makefile,因此创建每个makefile只需要几行信息。您可以将qmake用于任何软件项目,无论它是否使用qt编写。

qmake 是 Qt 工具包中带的一个非常方便的工具。可以用于生成 Makefile 以及各种工程文件,还可以生成 Microsoft Visual Studio 可以使用的项目文件等。 最关键的是它可以自动解决依赖关系,不用手写 Makefile,而且是跨平台的。

qmake 语言

1. 注释

qmake中的注释和代码中不同,是以符号 ‘#’ 开头。

# 这是一个注释

2. QT

指定项目使用的qt模块,在C++实现级别,使用QT模块使其头文件可用于包含,并使其与二进制连接。默认情况下,qt包含core和gui,确保无需进一步配置即可构建标准的gui应用程序。如果想要构建一个没有 qt-gui 模块的项目,需要使用 “-=” 操作符排除gui。

QT -= gui # 去除 gui 模块,只使用 core 模块

QT += core gui widgets qml network # 使用了 core gui widgets qml network 这些模块

3. TARGET

指定目标文件的名称,默认情况下包含的项目文件的基本名称。

TEMPLATE = app
TARGET = myapp
SOURCES = main.cpp

此项目运行之后会生成一个可执行文件,Windows下为myapp.exe,Linux下为myapp。

4. TEMPLATE

模板变量告诉qmake为这个应用程序生成哪种makefile,有以下选项可供选择:

 

5. CONFIG

具体项目配置和编译器选项,值由qmake内部识别并具有特殊意义。

 

6. DEFINES

qmake添加这个变量的值作为编译器C预处理器宏(-D选项)。
简单的例子:

在pro文件中添加:
DEFINES += MY_DEFINETION

在代码中使用:
#ifdef MY_DEFINETION
    // do something
#else
    // do something
#endif

7. DEF_FILE

指定要包含在项目中的.def文件。

注意:此变量仅在使用应用程序模板时在Windows上使用。

8. DEPENDPATH

指定要查找以解析依赖项的所有目录的列表。

9. DESTDIR

指定目标文件的放置位置。

例如:DESTDIR = ../../lib

10. DISTFILES

指定要包含在dist目标中的文件列表。此功能仅受unixmake规范支持。

例如:DISTFILES += ../program.txt

11. DLLDESTDIR

指定复制目标dll的位置。

注意:此变量仅适用于Windows目标。

12. EXTRA_TRANSLATIONS

指定包含将用户界面文本转换为非本机语言的转换(.ts)文件列表。

与翻译不同,额外翻译中的翻译文件只能由lrelease处理,而不是lupdate。

你可以使用 CONFIG += lrelease 在构建期间自动编译文件,并且 CONFIG += lrelease embed_translations 以使它们在qt资源系统中可用。

13. FORMS

指定在编译之前由UIC处理的UI文件。

构建这些UI文件所需的所有依赖项、头文件和源文件都将自动添加到项目中。

例如:

FORMS = mydialog.ui \
      mywidget.ui \
          myconfig.ui

14. GUID

指定在.vcproj文件中设置的GUID。

guid通常是随机确定的。但是,如果您需要一个固定的guid,可以使用这个变量来设置它。 此变量仅特定于.vcproj文件;否则将忽略它。

15. HEADERS

定义项目的头文件。

qmake自动检测头文件中的类是否需要MOC,并将适当的依赖项和文件添加到项目中,以生成和链接MOC文件。

例如:

HEADERS = myclass.h \
            login.h \
            mainwindow.h

16. ICON

此变量仅在Mac OS上用于设置应用程序图标。有关详细信息,请参阅应用程序图标文档。

17. INCLUDEPATH

指定编译项目时应搜索的包含目录。

例如:INCLUDEPATH = c:/msdev/include d:/stl/include

如果是不同系统的路径,可以添加系统判断

win32:INCLUDEPATH += "C:/mylibs/extra headers"
unix:INCLUDEPATH += "/home/user/extra headers"

18. INSTALLS

指定执行make install或类似安装过程时将安装的资源列表。列表中的每一项通常都用提供安装位置信息的属性定义。

例如,下面的target.path定义描述了安装生成目标的位置,而installs分配将生成目标添加到要安装的现有资源列表中:

target.path += $$[QT_INSTALL_PLUGINS]/imageformats
INSTALLS += target

19. LIBS

指定要链接到项目中的库列表。

如果使用unix-l(library)和-l(library path)标志,qmake将在Windows上正确处理库(即将库的完整路径传递给链接器)。库必须存在,qmake才能找到-l lib所在的目录。

例如:

unix:LIBS += -L/usr/local/lib -lmath
win32:LIBS += c:/mylibs/math.lib

20. MOC_DIR

指定放置所有中间MOC文件的目录。

例如:

unix:MOC_DIR = ../myproject/tmp
win32:MOC_DIR = c:/myproject/tmp

21. OBJECTS_DIR

指定放置所有中间对象的目录。

例如:

unix:OBJECTS_DIR = ../myproject/tmp
win32:OBJECTS_DIR = c:/myproject/tmp

22. PWD

指定指向包含要分析的当前文件的目录的完整路径。

这对于在编写项目文件以支持阴影生成时引用源树中的文件非常有用。

注意:不要试图覆盖这个变量的值。

23. QM_FILES_INSTALL_PATH

指定资源系统中的目录,其中.qm文件将由 CONFIG += embed_translations 提供。

默认值为:/i18n/。

24. QMAKE

指定qmake程序本身的名称,并将其放置在生成的makefiles中。

此变量的值通常由qmake或qmake.conf处理,很少需要修改。

25. QTPLUGIN

指定要与应用程序链接的静态qt插件的名称列表,以便它们作为内置资源可用。

qmake自动添加所用qt模块通常需要的插件。

当链接到Qt的共享/动态构建或链接库时,此变量当前不起作用。它可以在以后用于动态插件的部署。

26. RC_FILE

指定应用程序的资源文件名。

此变量的值通常由qmake或qmake.conf处理,很少需要修改。

27. RC_ICONS

指定应包含在生成的.rc文件中的图标。

仅限Windows。仅当未设置rc_file和res_file变量时才使用此选项。

28. RCC_DIR

指定qt资源编译器输出文件的目录。

unix:RCC_DIR = ../myproject/resources
win32:RCC_DIR = c:/myproject/resources

29. REQUIRES

指定作为条件计算的值列表。

如果任何条件都是错误的,那么在构建时qmake将跳过此项目(及其子项目)。

注意:如果希望在生成时跳过项目或子项目,建议使用requires()函数

30. RESOURCES

指定目标的资源收集文件(qrc)的名称。

31. SOURCES

指定项目中所有源文件的名称。

本文福利,费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QSS,OpenCV,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击费领取↓↓