首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Qt中,什么时候应该使用资源与DISTFILES和OTHER_FILES?

在Qt中,什么时候应该使用资源与DISTFILES和OTHER_FILES?
EN

Stack Overflow用户
提问于 2016-06-29 14:08:50
回答 3查看 12.8K关注 0票数 23

在.pro文件中,如果您包括头文件(使用HEADERS)、C++文件(使用SOURCES)和Objective/Objective++文件(使用OBJECTIVE_SOURCES),那么事情就很简单了,但我不太清楚应该如何包含其他文件类型。

例如,查看Qt提供的各种示例,对于QML文件应该是DISTFILESOTHER_FILES还是包含在.qrc文件(即RESOURCES)中,存在不一致之处。我已经开始在qml.qrc文件中放置QML文件了。

我之所以提出这个问题,是因为我在.qrc文件中包含了数据文件,如音频.qrc文件(也如Qt示例中所示;例如Qt快速演示-陷入困境),但这减慢了编译速度。对于Windows上的MinGW,当它达到1GB时,它就会出现内存不足的错误。一定有更好的方法包括这些!

请提供一份指南,说明何时使用:

  • DISTFILES
  • OTHER_FILES
  • RESOURCES
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-06-29 14:45:26

引用手册的话

资源

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

DISTFILES

指定要包含在dist目标中的文件列表。此特性仅受UnixMake规范的支持。..。

OTHER_FILES

这似乎实际上是没有文件的,至少我什么也找不到。据我所知,这里列出的所有文件仅在项目资源管理器(例如Qt )中链接,而qmake不以任何方式处理。

至于您的示例,您可以考虑按原样传送文件,而不是将它们包含在任何资源文件中,因为它们是编译成二进制文件

您还可以查看大型文件的编译外部资源并使用它们,以保持Qt资源系统的简单性。

票数 17
EN

Stack Overflow用户

发布于 2016-06-29 14:44:50

  • DISTFILES:对于unix来说,在大多数情况下您不会使用特殊的东西。从医生那里:

指定要包含在dist目标中的文件列表。此特性仅受UnixMake规范的支持。

  • OTHER_FILES:文件,它们是您项目的一部分,但不是“构建”的一部分。这可能是诸如自述、构建提示或其他不适合任何其他类别的东西。
  • RESOURCES.qrc-files,将被编译到应用程序中。

关于这三者在QML中的使用情况:

对于其他文件,您可以基本使用DISTFILESOTHER_FILES。在QtCreator中,节点中显示为其他文件。对于大多数开发人员来说,这两者是可以交换的。Qt示例是本地项目,因此它们要么不需要资源,要么两者都需要,也就是说,您可以在例如OTHER_FILESRESOURCES中找到QML-文件。

对于QML文件,您应该始终使用RESOURCES,以确保它们在二进制文件中。

票数 6
EN

Stack Overflow用户

发布于 2021-04-15 09:13:19

说到DISTFILES,你可以自己试试。

假设您在Windows上使用Qt。下面是一个非常简单的qmake项目文件project.pro

代码语言:javascript
运行
复制
TEMPLATE = app

DISTFILES += "C:\Windows\explorer.exe"

qmake it,您可以在生成的Makefile.Debug和Makefile.Release中找到以下语句

代码语言:javascript
运行
复制
DIST          = C:\Windows\explorer.exe

...

dist:
    $(ZIP) project.zip $(SOURCES) $(DIST) project.pro
    ...

dist标准指标之一。我从makefile - make和make dist有什么区别?-堆栈溢出那里学到的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38102160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档