当我发布我的Qt项目时,我希望将QtCore4.dll和QtGui4.dll文件与我的项目一起重新分发,但不放在与我的.exe文件相同的目录中(而是在其他相对路径中)。
如何使我的.exe文件自动找到它们?
我也不想在客户的环境中设置%PATH%或任何其他环境变量。
如何使我的.exe文件自动找到它们?
我也不想在客户的环境中设置%PATH%或任何其他环境变量。
PATH
:许多项目/应用程序都这样做,因此您应该将其视为真正的选项。qt.conf
文件来完成。有关编辑 qt.conf 文件的更多信息,请参见 this link。可能最安全的方法是使用一个脚本来启动您的应用程序,该脚本会在启动应用程序之前更改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等)?那将非常不寻常--确保使用发布版本。(除非你有使用调试版本的有效理由。)