c++ - 实现资源目录的良好做法

标签 c++ resources cross-platform qmake

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

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

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

然而,这可能会带来一些复杂情况(至少,我认为可以)。

无论如何,执行此操作的好的解决方案是什么?

最佳答案

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

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

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

在pro文件中

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

DEPLOYMENTFOLDERS = wwwDir xmlDir qmlDir

第二个

include(deployment.pri)
qtcAddDeployment()

然后就完成了。

关于c++ - 实现资源目录的良好做法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12846530/

相关文章:

c++ - 跨另一个进程共享进程内 COM 对象

c++ - 在 C 和 C++ 中为 NULL/false 大于 0x0/0b0/'\0'/0

c++ - 如何从 qi::double_ 转换为字符串?

如果在 .cpp 中实现函数,则出现 C++ 链接错误

javascript - JavaScript 不调用函数

java - Android:如何在开关中使用 res/integers.xml 值?

wpf - 如何在 XAML/WPF 中存储和检索多个形状?

c - 是否有一种故障安全方法来确定 C 中指针的对齐/尾随位?

json - 发生异常-错误JSON API-Flutter

cordova - 没有 WebSQL 的跨平台移动开发的 future