qt运行时插件目录设置

1.背景

        有时候需要把qt程序单独打包成dll,给第三方程序调用,此时第三方程序为主进程,调用qt封装的dll,所有qt插件依赖需要放置在主调用程序同级目录,否者无法调用;或者单纯只是嫌弃程序运行目录文件太多,想要改变qt插件目录。为了解决这个问题,有两种解决方案,在封装的dll中进行setLibraryPaths和qt.conf配置。

2.方案一setLibraryPaths

QApplication aApp(argc,argv);

QApplication::setLibraryPaths(QStringList(QCoreApplication::applicationDirPath()+"/QtPlugins/"));

// 'QtPlugins'为设置的插件放置目录,根据自己需要修改

3.方案二qt.conf

a.创建其qt.conf文件

b.填入插件配置

[Paths]
Prefix = ./QtPlugin          // 插件主目录,其他的都以这个为父目录
ArchData = .
Data = .
Libraries = .
LibraryExecutables = .
Binaries = .
Plugins = .
Imports = .
Qml2Imports = .
Translations = translations

c.将qt.conf添加到资源文件,路径前缀:/qt/etc

<RCC>
	<qresource prefix="/qt/etc">
        <file>qt.conf</file>
    </qresource>
</RCC>

d.将程序用到的qt插件拷贝到: ./QtPlugin下,例如:./QtPlugin/platforms

 

4.测试

创建一个win32程序TestLoad,调用qt封装的TestCore.dll

 

 

 

 

*注意:qt直接依赖库只可以放到被调用dll或者exe程序同级目录,否则程序无法启动(如:qcore、qwidget等)

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值