实现资源目录的良好做法

Good practice for implementing resource directories

本文关键字:资源 实现      更新时间:2023-10-16

我不确定这是否太笼统了,所以如果是的话,我会说我在使用 qmake 的 Linux 上,但我希望能够在需要时通过我的项目从 Linux 切换到 Windows,以及可能的其他 PC。

为了做到这一点,我想知道这里的一些程序员是如何在不使用绝对路径定义的情况下使用资源目录的。使用Qt时,运行时工作目录似乎是应用程序的构建目录,而不是源目录。

理想情况下,我认为最好的解决方案是以某种方式获取驻留在源目录中的资源目录,并将其复制到相对构建目录(即调试或发布,取决于开发阶段),以便应用程序可以通过运行时访问它。

但是,这可能会带来一些复杂性(至少,我认为可以)。

无论如何,这样做的好解决方案是什么?

如果您使用的是Qt。我建议使用部署过程。http://doc.qt.digia.com/qtcreator/creator-building-running.html

基本上,您只需要声明需要复制哪些目录。构建过程完成后,qt 创建者会将这些目录复制到构建目录(发布/调试)。然后,您只需运行可执行文件即可。

这是一个例子。https://github.com/longwei/incubator-cordova-qt。

在专业文件中

wwwDir.source = www
xmlDir.source = xml
qmlDir.source = qml
DEPLOYMENTFOLDERS = wwwDir xmlDir qmlDir

第二

include(deployment.pri)
qtcAddDeployment()

然后就完成了。

目前尚不清楚您究竟要实现什么,但也许一个简单的解决方案是让构建脚本通过编译定义传递必要的路径(与 gcc -D)。然后,根据它是调试、发布等构建,将相应地设置定义,然后相应的二进制文件将具有正确的路径。

作为旁注,我尝试了一段时间的qmake,但发现SCons更加通用。