0

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

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

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

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

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

4

2 回答 2

3

如果您使用的是 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()

然后就完成了。

于 2012-10-11T20:58:05.373 回答
1

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

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

于 2012-10-11T19:28:46.857 回答