如何在发布Qt项目时设置相对路径以加载Qt dlls?

8
当我发布我的Qt项目时,我希望将QtCore4.dll和QtGui4.dll文件与我的项目一起重新分发,但不放在与我的.exe文件相同的目录中(而是在其他相对路径中)。
如何使我的.exe文件自动找到它们?
我也不想在客户的环境中设置%PATH%或任何其他环境变量。
2个回答

1
首先,您应该重新考虑不更改客户环境中的 PATH:许多项目/应用程序都这样做,因此您应该将其视为真正的选项。
其次,最好的方法似乎是通过编辑与可执行文件放置在同一文件夹中的 qt.conf 文件来完成。有关编辑 qt.conf 文件的更多信息,请参见 this link

1

可能最安全的方法是使用一个脚本来启动您的应用程序,该脚本会在启动应用程序之前更改PATH(但仅限于该会话)。以下是我用来启动自定义版本的Qt Creator的脚本:

set PATH=%PATH%;C:\Qt\qt474_custom_msvc2008_x64\lib;C:\Qt\jom
start C:\Qt\qtcreator231__custom_msvc2008_x64\bin\qtcreator.exe

我认为有其他选择,比如SetDllDirectory,但是(就像*nix上的rpath一样),它们会引入其他问题。要么是并排放置的dll,要么是更改PATH似乎是最稳定的解决方案。

另外,你是不是想部署这些dll的调试版本(QtCore*d*4.dll等)?那将非常不寻常--确保使用发布版本。(除非你有使用调试版本的有效理由。)


谢谢。关于您最后一段的内容,我并不是指“d”版本,我会更新问题。 - Igor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接