[QT]qt plugin插件

本文介绍了QT框架中插件的使用,包括高层和低层次的插件。重点讲述了低层次插件的加载过程,通过QPluginLoader来实现,并提供了实例代码。还强调了插件的编译模式与加载一致性,以及如何处理include路径和应用程序路径。
摘要由CSDN通过智能技术生成

plugin是作为dll的一种特殊的应用而存在的. 也就
是说,在linux下面,他是so的一种应用而已. 动态链接装入器例程 dlopen 需要在文件系统
中查找共享目标文件以打开文件并创建句柄. 有 4 种方式用以指定文件的位置:
  1.dlopen call 中的绝对文件路径
  2.在 LD_LIBRARY_PATH 环境变量中指定的目录中
  3.在 /etc/ld.so.cache 中指定的库列表之中,可以用命令更新ld.so.cache:
    ldconfig -C ld.so.cache -n ../lib -v
  4.先在 /usr/lib 之中,然后在 /lib 之中

 

今天主要是看了qt相关的plugin的东西. 并且尝试了一个plugin的程序,对于我们来说,
plugin是一个非常非常有用的东西,以后要多用.
对于qt而言,plugin是做成动态链接库的形式存在的,但是qt的plugin有一些特殊的地方. 事
实上,qt的plugin有两种,高层次和低层次的. qt的高层(high level)plugin是有qt的
meta-object system自动管理的. 也就是说你必须把你的plugin放在特定的子目录下面不能
修改,qt会自动寻找这些plugin. 当然我们可以用QLibrary重新设定qt lib的path,但是我觉
得这样是非常不礼貌的做法. 当然了,高层plugin也会自动搜寻系统的当前执行目录下的子
目录来寻找plugin. 高层的plugin包括了许多有用的东西,包括了image,textcode,style等
等.
而对于我们更加有用的低层次的plugin,这种plugin可以用QPluginLoader来加载,我们可以
利用qApp::applicationDirPath()来得到我们当前的程序运行path,然后利用
QDir::cd("plugins")这样的操作进入我们的plugins子目录,然后load之. 对于这类的
plugin我们需要遵循下列的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值