将Qt DLL保存到单独的文件夹中

时间:2016-01-28 01:21:05

标签: c++ qt dll qt5

我是Qt开发环境中的新手,我部署了一个小型Qt应用程序(发布版本),我还在与 .exe 文件相同的目录级别复制了必要的dll以及一个名为 platforms 的单独文件夹,用于特定于平台的dll。现在程序运行正常。

但我想将dll保存在一个单独的子文件夹中。

我在此问题上找到的大多数搜索结果都为第三方dll提供了解决方案。并特别提到创建插件子目录,但我试图移动 Qt5core.dll Qt5Gui.dll Qt5Widgets。 dll icu dll 位于一个单独的位置(在应用程序目录中)。

据我所知,该程序在与 .exe 文件相同的目录级别中搜索必要的dll。

那么,如何设置 dll 的相对路径呢?目录结构如下所示:

appDirectory/app.exe
appDirectory/lib/all_necessary_dlls
appDirectory/platforms/platform_specific_dll
  

我一直在搜索Qt论坛和SO很长时间但是失败了   找到满意的答案。

2 个答案:

答案 0 :(得分:1)

Qt dll文件在程序启动时静态加载,这意味着Windows将首先在app目录中查找%PATH%环境变量中包含的每个目录。

所以,为了从子目录加载它们,我能想到的唯一方法是在启动程序之前将子目录添加到%PATH%环境变量中(可能在安装过​​程中或其他时候),但是这根本不是干净的方式。

但你为什么要这样做呢?

如果您不喜欢随应用程序一起分发的dll文件,则始终可以选择静态链接(但请确保在使用时不要破坏许可证)。

答案 1 :(得分:0)

默认情况下,它在.pro文件中提到的父目录中搜索。如果在.pro文件中进行必要的更改然后编译它将开始采用相对路径。