我是Qt开发环境中的新手,我已经部署了一个小的Qt应用程序(发行版),并且还已在与.exe文件相同的目录级别中复制了必需的dll,并为平台特定的dll复制了一个名为platform的单独文件夹。现在程序运行正常。
但我想将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上搜索了很长时间,但是找不到令人满意的答案。
Qt dll文件是在程序启动时静态加载的,这意味着Windows会首先在app目录中查找,然后在%PATH%
环境变量包含的每个目录中查找。
因此,为了从子目录中加载它们,我唯一想到的方法是%PATH%
在启动程序之前(可能是在安装过程中或诸如此类)将子目录添加到环境变量中,但这并不是一个干净的方法一切。
但是为什么您仍然必须这样做呢?
如果您不喜欢将dll文件随应用程序一起分发,则始终可以选择静态链接(但请确保使用时不要破坏许可证)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句