qmake:配置qmake

qmake:配置qmake一、属性qmake有一个持久化配置系统,它允许在qmake中设置一次属性,并在每次调用qmake时查询它。可以在qmake中设置一个属性:qmake-setPROPERTYVALUE您可以从qmake检索此信息,如下所示:qmake-queryPROPERTYqmake-query//列出内置属性以下是内置属性:QMAKE_SPEC:在主机构建期间解析并存储在QMAKESPEC变量中的主机mkspec的短名称

大家好,又见面了,我是你们的朋友全栈君。

一、属性

qmake 有一个持久化配置系统,它允许在 qmake 中设置一次属性,并在每次调用 qmake 时查询它。

可以在 qmake 中设置一个属性:

qmake -set PROPERTY VALUE

您可以从 qmake 检索此信息,如下所示:

    qmake -query PROPERTY
    qmake -query    //列出内置属性

qmake:配置qmake

以下是内置属性:

  • QMAKE_SPEC:在主机构建期间解析并存储在 QMAKESPEC 变量中的主机 mkspec 的短名称
  • QMAKE_VERSION:qmake 的当前版本
  • QMAKE_XSPEC:在目标构建期间解析并存储在 QMAKESPEC 变量中的目标 mkspec 的短名称
  • QT_HOST_BINS:主机可执行文件的位置
  • QT_HOST_DATA:qmake 使用的主机可执行文件的数据位置
  • QT_HOST_PREFIX:所有主机路径的默认前缀
  • QT_INSTALL_ARCHDATA:依赖于一般架构的 Qt 数据的位置
  • QT_INSTALL_BINS:Qt 二进制文件(工具和应用程序)的位置
  • QT_INSTALL_CONFIGURATION:Qt 设置的位置。不适用于 Windows
  • QT_INSTALL_DATA:与架构无关的通用 Qt 数据的位置
  • QT_INSTALL_DOCS:文档位置
  • QT_INSTALL_EXAMPLES:示例位置
  • QT_INSTALL_HEADERS:所有头文件的位置
  • QT_INSTALL_IMPORTS:QML 1.x 扩展的位置
  • QT_INSTALL_LIBEXECS:运行时库所需的可执行文件的位置
  • QT_INSTALL_LIBS:库的位置
  • QT_INSTALL_PLUGINS:Qt 插件的位置
  • QT_INSTALL_PREFIX:所有路径的默认前缀
  • QT_INSTALL_QML:QML 2.x 扩展的位置
  • QT_INSTALL_TESTS:Qt 测试用例的位置
  • QT_INSTALL_TRANSLATIONS:Qt 字符串的翻译信息位置
  • QT_SYSROOT:目标构建环境使用的 sysroot
  • QT_VERSION:Qt 版本。可使用 $$QT.<module>.version 变量来查询 Qt 模块特定的版本号  

二、QMAKESPEC

qmake 需要一个平台和编译器描述文件,其中包含许多用于生成适当 Makefile 的默认值。

标准 Qt 发行版带有许多这样的文件,位于 Qt 安装的 mkspecs 子目录中(如:D:\qt6.2\6.2.0\msvc2019_64\mkspecs)。

QMAKESPEC 环境变量可以包含以下内容:

  • 包含 qmake.conf 文件的目录的完整路径。在这种情况下,qmake 将从该目录中打开 qmake.conf 文件。如果文件不存在,qmake 将退出并报错。
  • 平台编译器组合的名称。在这种情况下,qmake 将在 Qt 编译时指定的数据路径的 mkspecs 子目录指定的目录中搜索。

注意:QMAKESPEC 路径将自动添加到 INCLUDEPATH 系统变量内容之后生成的 Makefile 中。

三、缓存文件

缓存文件是 qmake 读取的特殊文件,用于查找未在 qmake.conf 文件、项目文件或命令行中指定的设置。

当 qmake 运行时,除非指定 – nocache 参数,否则它会在当前目录的父目录中查找名为 .qmake.cache 的文件 如果。qmake 找不到这个文件,它会默默地忽略这一步处理。

如果 qmake 找到一个 .qmake.cache 文件,那么它会在处理项目文件之前先处理这个文件。

四、文件扩展名

在正常情况下,qmake 会尝试为当前平台使用适当的文件扩展名。但是,有时需要覆盖每个平台的默认选择并明确定义要使用的 qmake 的文件扩展名。这是通过重新定义某些内置变量来实现的。

例如,可以在项目文件中使用以下分配重新定义用于 moc 文件的扩展名:

 QMAKE_EXT_MOC = .mymoc

以下变量可用于重新定义 qmake 识别的常见文件扩展名:

  • QMAKE_EXT_MOC:修改放置在包含的 moc 文件上的扩展名。
  • QMAKE_EXT_UI:修改用于 Qt Designer UI 文件的扩展名(通常在 FORMS 中)。
  • QMAKE_EXT_PRL:修改放置在库依赖文件上的扩展名。
  • QMAKE_EXT_LEX:更改 Lex 文件(通常在 LEXSOURCES)中使用的后缀。
  • QMAKE_EXT_YACC:更改 Yacc 文件(通常在 YACCSOURCES)中使用的后缀。
  • QMAKE_EXT_OBJ:更改用于生成的目标文件的后缀。

以上所有都只接受第一个值,下面的代码第二行不起作用:

 QMAKE_EXT_MOC = .mymoc_1
 QMAKE_EXT_MOC = .mymoc_2

 有两个变量可以接受值列表:

  • QMAKE_EXT_CPP:使 qmake 将所有带有这些后缀的文件解释为 C++ 源文件。
  • QMAKE_EXT_H:使 qmake 将所有带有这些后缀的文件解释为 C 和 C++ 头文件。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/144562.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • GoogleNet_我和我的祖国论文摘要

    GoogleNet_我和我的祖国论文摘要GoogLeNetIncepetionV1这是GoogLeNet的最早版本,出现在2014年的《Goingdeeperwithconvolutions》。之所以名为“GoogLeNet”而非“GoogleNet”,文章说是为了向早期的LeNet致敬。Motivation深度学习以及神经网络快速发展,人们不再只关注更给力的硬件、更大的数据集、更大的模型,而是更在意新的idea、新的算法以及模型的改进。一般来说,提升网络性能最直接的办法就是增加网络深度和宽度,即增加隐层和以及各层神经元

    2022年8月14日
    4
  • IDEA 非maven项目打jar包(包含第三方依赖包)

    IDEA 非maven项目打jar包(包含第三方依赖包)**IDEA非maven项目打jar包**普通java项目打JAR包方式(包含第三方依赖包):①在保证程序能运行情况下:②③④***最后就生成JAR包了在相应文件夹下运行控制台命令java-jar.jar就可以运行了…

    2022年6月19日
    73
  • MATLAB 数组拼接

    MATLAB 数组拼接例如a=,b=横向拼接:c=[a,b]c=纵向拼接:c=[a;b]c=

    2022年6月11日
    113
  • java 差的绝对值_java 绝对值问题[通俗易懂]

    /**输入一个正整数repeat(0/**输入一个正整数repeat(0读入1个正实数eps,计算并输出1-1/3+1/5-1/7+……,直到最后一项的绝对值小于eps为止(要求每一项的绝对值均大于等于eps,并以float类型输出数据)。例:括号内是说明输入2(repeat=2)1E-40.1输出0.78534820.83492064*/importjava.util.Scanner…

    2022年4月6日
    134
  • sublime 4113 激活码【最新永久激活】

    (sublime 4113 激活码)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html0UY7RF7AC5-eyJsaWNlbnNlSWQi…

    2022年3月28日
    399
  • 私域流量辅助工具

    什么是私域流量?私域流量是指从公域、它域(平台、媒体渠道、合作伙伴等)引流到自己私域(官网、用户名单),以及私域本身产生的流量(访客)。私域流量是可以进行二次以上链接、触达、发售等市场营销活动用户数据。  对于企业来说,随着流量红利的耗尽,企业新客增量逐渐达到瓶颈,想要维持业绩增长,挖掘老用户更多价值就成为了很多公司的共识。公域流量获客成本较高,而私域流量则不用付费就能够为品牌带来更多新用户。在私域运营中,品牌往往更注重用户需求,而不是货品,因此,这些新用户在品牌的私域流量用户池中,往往比公域流量的用户更

    2022年4月7日
    59

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号