发布qt程序时加载qt自带插件问题

来源:互联网 发布:寂寞的季节 知乎 编辑:程序博客网 时间:2024/05/01 14:24

最近在做qt的项目,在发布项目的时候发现发布的程序无法在其他机器上运行,总弹出错误下面的错误。


我在项目里面只用到图片插件和数据库插件,按照别人的说法,在源代码使用Applicantion::addLibraryPath()发现还是没用。后来下载了一个软件ProcessExplore查看发布的程序在本机上运行时调用的DLL,发现该程序成功调用了发布文件里的图片插件,却没有调用数据库插件,而是调用的qt库里的数据库插件。


我花了好几天的时间,以为是加载插件的函数有问题,一直对数据库插件无效,或者是数据库不兼容之类的。后来发现错误是在main函数里面,我在调用函数Applicantion::addLibraryPath()之前就执行了一部分程序,而该程序里面涉及到数据库插件的使用,所以程序还是会默认调用qt库里的插件,而不是重新设置的路径里面的插件。

当我把Applicantion::addLibraryPath()放到涉及到数据库插件使用的代码之前就发现错误没有了,发布的程序可以正常运行,ProcessExplore查看的结果也是使用的是发布目录下的DLL,而不是qt库里的DLL。



0 0