2012-06-27 33 views
0

有没有一种方法可以在程序执行过程中指定运行时的根目录?我之所以问,是因为我希望能够拥有一个资产文件夹,我只需通过"assets/"就可以访问代码,而不必输入"absolute/path/to/assets"。最坏的情况我可以创建一个宏或者一个const std :: string/QString来追加到所有的东西,但是我发现只要允许项目能够访问相对来自源目录的所有东西就会更清洁,而不是实际的编译目录。Qt Creator/qmake - 从源目录加载资产文件夹,而不是构建目录

如果完全可以实现,这怎么能实现呢?

编辑

我还要指出,我在我的Linux操作系统,并没有在此刻多平台使用的任何计划,这主要是由于这样的事实,我只是创建学习项目。

回答

1

切换工作目录到应用程序可执行文件的目录,比如:

if (QDir::setCurrent(QCoreApplication::applicationDirPath())) { 
    // success! 
    ... 
} 

跨平台的。

+0

...但在涉及DLL时不起作用。 – Calvin1602

+0

那么,如果dll是用自己的Qt副本编译的,并且没有链接到与应用程序本身相同的Qt副本,那么是的,这将是一个问题。 –

相关问题