Qt项目中的.pro文件关键字详解

目录

前言

配置项

1、#    注释

 2、TEMPLATE    生成Makefile的预设模板

3、TARGET    指定生成项目名称

4、 CONFIG    指定配置和编译器选项

5、UIC_DIR    

6、RCC_DIR

7、MOC_DIR

8、OBJECTS_DIR

9、DESTDIR

10、DEPENDPATH

11、INCLUDEPATH

12、CODECFORSRC

13、FORMS

14、HEADERS

15、SOURCES

16、RESOURCES

17、LIBS

18、DEFINES


前言

        *.pro 文件是创建 Qt 项目时生成的工程文件,可使用 qmake 命令后在 Linux 环境下可以生成 Makefile 文件。

        qmake 命令是在 Linux 环境下的编译命令,主要功能是根据 *.pro 文件生成对应的 Makefile 文件,执行翻译的功能。

        Makefile 文件其实是一个脚本文件,用于执行将散在各个文件夹的程序文件编译成期望的项目。

        因此,如果需要完成项目创建或者进阶定制我们程序的功能,我们都需要从基础的 *.pro 文件入手,研究其然及所以然。本文主要讲解 *.pro 文件的关键字和对应的功能,下面就开始学习吧。


配置项

1、#    注释

         # 字符用于标记整行文字,根据开发需求形成注释。例如 1-5 行的代码。

图 1 注释

 2、TEMPLATE    生成Makefile的预设模板

        TEMPLATE 用于设置项目的模板,决定项目构建时建立的是应用程序 (application) 、库 (library) 还是插件 (plugin),主要分为 5 种,他们分别为 applibsubdirsvcappvclibaux

  • app:创建用于构建应用程序的 Makefile。TEMPLATE 默认类型。
  • lib:创建用于构建库的 Makefile。
  • subdirs:创建用于构建子目录的 Makefile。子目录可由 SUBDIRS 变量指定。
  • vcapp:仅在 Windows 下生效,创建适用于 Visual Studio 的应用程序。
  • vclib:仅在 Windows 下生效,创建适用于 Visual Studio 的库。
  • aux:创建一个 Makefile 但不进行构建。

3、TARGET    指定生成项目名称

        TARGET 用于配置默认生成的项目名称。用法如下:

TARGET = tempapp

4、 CONFIG    指定配置和编译器选项

        以下是从 Qt 官方文档翻译的可供配置的选项及描述。 

选项描述
release配置项目为发布模式。如果同时指定了 debug,则最后的配置项生效。
debug配置项目为调试模式。
debug_and_release配置项目为调试和发布模式。同时创建调试和发布项目。
debug_and_release_target此项为默认设置。如果配置了 debug_and_release,调试和发布项目将在属于自己的文件目录生成。
build_all如果配置了 debug_and_release,将默认生成调试和发布项目。
autogen_precompile_source自动生成包含在 .pro 文件中指定的预编译头文件和
ordered

当模板指定为 subdirs 时,此配置项会根据 .pro 文件的顺序进行编译处理。

注意:不鼓励使用此项。应按照 SUBDIRS 说明文档中的变量指定依赖项。

precompile_header增加预编译头文件支持。
precompile_header_c (MSVC only)增加对 C 文件的预编译头文件支持。
warn_on编译器尽可能多的输出警告信息。如果同时配置了 warn_off,则最后的配置项生效。
warn_off编译器尽可能少的输出警告信息。
exceptions启用异常支持配置。默认设置。
exceptions_off停用异常支持配置。
ltcg启用链接时进行代码生成配置。默认关闭。
rtti启用 RTTI 支持配置。默认情况使用编译器默认值。
rtti_off停用 RTTI 支持配置。默认情况使用编译器默认值。
stl启用 STL 支持配置。默认情况使用编译器默认值。
stl_off停用 STL 支持配置。默认情况使用编译器默认值。
thread启用线程支持配置。当 CONFIG 配置项中包含 qt 时默认启用。
utf8_source明确项目源文件使用 UTF-8 进行编码。默认情况使用编译器默认值。
hide_symbols将二进制文件中符号的默认可见性设置为隐藏。默认情况使用编译器默认值。
c99启用 C99 编译支持。如果编译器不支持 C99 或无法选择 C 标准,则此选项无效。默认情况使用编译器默认值。
c11启用 C11 编译支持。如果编译器不支持 C11 或无法选择 C 标准,则此选项无效。默认情况使用编译器默认值。
strict_c停用对 C 编译器扩展支持。默认情况扩展支持处于启用状态。
c++11启用 C++11 编译支持。如果编译器不支持 C++11 或无法选择 C++ 标准,则此选项无效。默认情况使用编译器默认值。
c++14启用 C++14 编译支持。如果编译器不支持 C++14 或无法选择 C++ 标准,则此选项无效。默认情况使用编译器默认值。
c++1z启用 C++17 编译支持。如果编译器不支持 C++17 或无法选择 C++ 标准,则此选项无效。默认情况使用编译器默认值。
c++17与 c++1z 相同。
c++2a启用 C++2a 编译支持。如果编译器不支持 C++2a 或无法选择 C++ 标准,则此选项无效。默认情况使用编译器默认值。
c++latest启用编译器对最新的 C++ 语言标准的支持。默认情况下,此选项处于停用状态。
strict_c++停用对 C++ 编译器扩展支持。默认情况下扩展支持处于启用状态。
depend_includepath启用自动追加 INCLUDEPATH 到 DEPENDPATH。默认配置。
lrelease对 TRANSLATIONS 和 EXTRA_TRANSLATIONS 中列出的所有文件执行 lrelease。如果未配置 embed_translations,则需要将生成的 .qm 文件装载至 QM_FILES_INSTALL_PATH 中。使用 QMAKE_LRELEASE_FLAGS 向 lrelease 调用添加选项。默认不配置。
embed_translations根据 QM_FILES_RESOURCE_PREFIX 设置,将 lrelease 生成的翻译文件嵌入可执行文件中。此外还需要配置 lrelease。默认不配置。
create_libtool在当前构建的库创建一个 libtool 类型的 .la 文件。
create_pc在当前构建的库创建一个 pkg-config 类型的 .pc 文件。
no_batchNMake only:关闭 NMake 批处理规则或推理规则的生成。
skip_target_version_ext在 Windows 环境中,禁止自动将版本号附加到 DLL 文件名中。
suppress_vcproj_warnings禁止 VS 项目生成器的警告。
windeployqt链接后自动调用windeployqt,并将输出添加为部署项。
dont_recurse禁止 qmake 在子项目递归执行。
no_include_pwd当前目录不添加至 INCLUDEPATHS。
compile_included_sources默认情况下,qmake 不编译包含在其他源文件的源文件。默认不配置此项。

5、UIC_DIR    

        用于指定执行 uic 命令后,将 .ui 转化为 ui_*.h 文件的生成目录。

6、RCC_DIR

        用于指定执行 rcc 命令后,将 .qrc 文件转化为 qrc_*.h 文件的生成目录。

7、MOC_DIR

        用于指定执行 moc 命令后,将含有 Q_OBJECT 的头文件转换为标准 .h 文件的生成目录。

8、OBJECTS_DIR

        用于指定目标文件 obj 的生成目录。

9、DESTDIR

        用于指定可执行文件或库文件的生成路径。

10、DEPENDPATH

        用于指定工程的依赖路径。

11、INCLUDEPATH

        用于指定工程所需的头文件。

12、CODECFORSRC

        用于指定源文件的编码格式。

13、FORMS

        用于指定项目所需的 ui 文件。

14、HEADERS

        用于指定项目所需的 .h 文件。

15、SOURCES

        用于指定项目所需的 .cpp 文件。

16、RESOURCES

        用于指定项目所包含的 .qrc 资源文件。

17、LIBS

        用于指定引入的 lib 文件的路径。

18、DEFINES

        用于指定项目的编译选项

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

暖晴的天

予人玫瑰,手有余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值