【问题标题】:How to set a relative path for Qt dlls when releasing a Qt project?Qt项目发布时如何设置Qt dll的相对路径?
【发布时间】:2012-01-15 01:49:29
【问题描述】:

当我发布我的Qt 项目时,我想将QtCore4.dllQtGui4.dll 文件与我的项目一起重新分发,但不在与我的.exe 相同的目录中(在其他一些相对路径中)。

如何让我的.exe 自动找到它们?

我也不想在客户的环境中设置%PATH% 或任何其他环境变量。

【问题讨论】:

    标签: windows qt dll dynamic path


    【解决方案1】:

    首先,您应该重新考虑不要更改客户环境中的 PATH:许多项目/应用程序都会这样做,因此您应该将其视为一个真正的选择。

    其次,最好的方法似乎是编辑与可执行文件位于同一文件夹中的qt.conf 文件。有关编辑 qt.conf 文件的更多信息,请参阅 this link

    【讨论】:

      【解决方案2】:

      可能最安全的方法是在启动您的应用程序之前使用一个确实更改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 版本,我会更新问题。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-05-28
      • 2014-10-05
      • 2011-05-14
      • 1970-01-01
      • 2021-05-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多