当我发布我的Qt
项目时,我想要将QtCore4.dll
和QtGui4.dll
文件与我的项目重新分发,但不能与我的.exe
(在其他一些相对路径。)
如何让.exe
自动找到它们?
我也不想在客户的环境中设置%PATH%
或任何其他环境变量。
答案 0 :(得分: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等)?这将是非常不寻常的 - 确保您使用发布版本。 (当然,除非您有正当理由使用调试版本。)
答案 1 :(得分:1)
首先,您应该重新考虑不要更改客户环境中的PATH
:许多项目/应用程序会这样做,因此您应该将其视为一个真正的选择。
其次,执行此操作的最佳方法似乎是编辑放置在与可执行文件相同的文件夹中的qt.conf
文件。有关编辑qt.conf文件的详细信息,请参阅this link。