如何在MeeGo Qt应用程序中加载插件(一)

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

QT 插件简介


什么是插件

插件机制是一种扩展现有程序的机制。插件允许第三方开发者在无需访问主程序源代码的情况下来扩展该程序。插件能够应用的各项服务,包括提供加载方式,使插件可以加载到应用程序和网络传输协议中,从而和插件进行数据交换等。简而言之,插件是提供特定接口的库。


QT插件的两种类型:

Qt Plugin和其他类型的插件一样,是一种计算机应用程序,它和主应用程序(host application)互相交互,以提供特定的功能。应用程序支持Plugin有许多原因,一些主要原因包括:使得第三方开发者有能力扩展应用程序,以提供无法先期预料的特色;减小应用程序的大小;由于软件版权之间的不兼容性将源代码和应用程序分享。Qt Plugin 分动态插件和静态插件两种。



1.静态插件能够静态的链接到应用程序,使得部署更少出错,但是应用程序重新构建和发布时难以增加新的功能;
2.动态插件是更常用到和更灵活的方式,可以单独发布,并且可以在运行时检测和加载;




QT插件的实现步骤

本篇到此,下一篇 如何在Qt应用程序中加载插件(二) 中将给出详细例子如何实现一个动态插件。


摘自Intel软件网络:http://g.csdn.net/5194786

linux生成/加载插件(动态库)的方法 详细linux描述Qt生成so库,和应用程序(QMainwindow)加载动态库的方法,/ 立即下载

相关推荐

Qt 4 插件开发

Qt 插件由共享库(Unix/Linux 上的 .so 以及 Windows 上的 .dll)实现。简单来说,切关于共享库的知识,在 Qt 插件上同样适用。Qt 插 件根本上说就是符合某些规定的共享库。从另外方面说,插件架构是不同于普通的链接的。我们可以将插件理解成种动态链接技术, 而非插件则是静态链接。 插件系统机制是,核心系统指定接口和交换的数据格式(通常是以 API 的形式给出)。这种接口和特定的数据格式形成种协议,不同模 块通过这种协议与核心系统进行交互,或者是能够通过核心系统将自己的某些功能暴露出来(也就是为其它模块提供服务)。仅仅将所需 要的功能放到动态链接库里面并不能满足些特定的需求,比如,我们希望应用程序能够自动发现某特定文件夹下的动态链接库,能够 知道这些动态链接库内部的逻辑是怎样的,我们能够如何使用它们。这些需求,对于个普通的动态链接库模块是不能实现的(或者说, 不是自动提供的功能,而需要编写额外的代码)。于是,我们需要插件架构。般来说,动态链接库能够对外暴露出的是系列函 数。对于链接库内部的变量、类以及对象则不能直接访问。编写插件则可以绕过这个限制,插件内部的变量、对象都可以直接对应用程序 暴露出来。

Linux下Qt可执行程序设置动态库及插件路径

在linux下直接双击编译完的可执行程序发现压根跑不起来,但是在Qt Creator中能够执行和调试,那是因为可执行程序无法加载Qt的库导致的。下面提供种解决办法 新建run.sh(名称可随意修改),将以下内容写入文件中 #!/bin/bash curwd=$(cd "$(dirname "$0")";pwd) //获取可执行程序所在目录 export PATH=$QTDIR/lib:$PATH

BrokenRainK的博客 2987

QT数据库--添加MySQL驱动插件(Linux篇)

编译环境: Ubuntu 11.04 、QT4.7.2、GCC 1.下载MySQL的源码包 mysql-5.1.70.tar.gz  下载地址: http://www.mirrorservice.org/sites/ftp.mysql.com/Downloads/MySQL-5.1/ http://download.csdn.net/detail/smallbox00/58166

catemo的博客 3518

QT数据库--添加ODBC驱动插件(Windows、Linux、ARM篇)

、Windows篇 (由于Windows平台添加驱动插件比较简单,从网上找了两个方法,记录如下。PS:本人未验证) 1. 单独编译ODBC驱动源码  D:\Qt\4.8.4\src\plugins\sqldrivers\odbc     qmake -t vclib odbc.pro     nmake 2. 编译ODBC插件,./configure -plugin-sq

知人者智自知者明 5203

meego平台程序开发总结

基于meego平台开发应用程序段时间了,尤其是最近个多月,天天加班,赶进度。目前,这个阶段的代码终于冻结更新了,因此,也有时间静下心来总结下。

Embedded Linux Development 1万+

如何在MeeGo Qt应用程序加载插件()

在前篇文章如何在Qt应用程序加载插件()中我们了解了Qt插件的概述,本篇给出详细的例子如何去实现个动态插件。 1 定义接口类: 1.1.定义共同接口(纯虚类): 程序要能感知插件,需要程序和插件共同遵守某种规则。于是需要在主程序中定义个共同的接口,该接口直

MeeGo社区博客 2727

MeeGo体系结构

博主注释:下面那张结构图是理想图,但是现在情况是很多功能还不具有,中间层的内容大部分没有实现,MEEGO API层其实就是QT API,其他功能还在开发中,总之MEEGO的现实开发情况是不理想中的那样。 MeeGo平台精心设计所有必要模块,是为了给设备使用者最好的用户体验。正如以下MeeGo架构综述图所表现的,MeeGo系统主要分成三个部分: MeeGo操作系统底层 包含linux核心服务组件以及支持不同硬件架构的硬件自适应层。 MeeGo操作系统中间件层 提供硬件和独立的API使用模型用

liqinghua1653的专栏 1253

Qt教程

Qt

CSDN全栈领域优秀博主,阿里云博客专家,工信部权威认证物联网技术开发工程师,曾30分钟高分通过C语言二级,两天手撸代码完成EasyX飞机大战,靠接软件私活一个月换苹果电脑 2万+

详细解读MeeGo系统构架

MeeGo平台被精心设计多个必要的组件,以便为提供最好的用户体验。MeeGo分为三层:  1,MeeGo操作系统基础层,包含Linux内核及其核心服务,以及为MeeGo支持多种平台的硬件适配模块。其中核心服务包括配置数据库GConf,系统库,消息总线和平台信息。  2,MeeGo 中间层,包括网络服务(蓝牙、语音、即时通讯、电话、连接管理),互联网服务(WebKit、网络服务库、地理信息),虚拟图形图像服务(3D[OpenGL]、2D[Cairo]、界面展现[Pango,Qt]、X窗口系统等)、媒体服务(

MeeGo社区博客 2306

Meego 输入法架构介绍

Meego输入法框架与著名的SCIM输入法框架类似,如果对SCIM不了解,可参看之前的转载,Meego输入法主要分为,输入法前端插件,输入法引擎、输入法插件,以及输入法插件管理服务模块、配置模块、进程通信模块。   输入法前端插件,即实现了QInputContext的对象,这些对象被包装在QInputContextPlugin插件中,放置在/usr/lib/qt4/plugins/inppu

liuysheng的专栏 1228

QtQt发展历史

00. 目录 文章目录00. 目录01. Qt是什么02. Qt的历史03. Qt和KDE04. Qt和智能手机05. Qt历史发展06. 附录 01. Qt是什么 Qt是跨平台的开发库,主要是开发图形用户界面(Graphical User Interface,GUI)应用程序,当然也可以开发非图形的命令行(Command User Interface,CUI)应用程序Qt支持众多的操作系统平台,如通用操作系统 Windows、Linux、Unix,智能手机系统 Android、iOS、WinPhone

C/C++软件工程师、嵌入式软件工程师、物联网研发工程师、C/C++讲师、物联网讲师、嵌入式讲师、鸿蒙讲师---欢迎大家一起交流(私信添加博主微信) 4775

Meego平台技术架构

 <v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f">

大道至简 6170

如何创建Qt quick应用程序

Qt(发音为“ cute”,而不是“ cu-tee”)是个跨平台框架,通常用作图形工具包,它不仅创建CLI应用程序中也非常有用。而且它也可以在三种主要的台式机操作系统以及移动操作系统(如Symbian,Nokia Belle,Meego Harmattan,MeeGo或BB10)以及嵌入式设备,Android(Necessitas)和iOS的端口上运行。更多Qt产品详情点击这里>> 点击下载Qt最新试用版 创建Qt快速项目 “新建文件或项目对话框” 从头开始创建新的Qt Quick项目时,可

qq_42444778的博客 807

qt qml linux下插件,QML Qt4.7超炫经典实例1 源代码

这个小程序原本是 gwibbersoft 这个哥们写的,在Youtube上看见了,觉得不错,源代码 git 下来看了看,由于他写得比较早,估计是QDeclarative项目内测的时候写的。在Qt4.6.x/Qt4.7Beta中用QmlViewer来打开就会出现大堆错误。所以我就花了半个小时做了些修改,让它在Qt4.7Beta中跑起来。并把源代码分享给大家。随着QDeclarative项目的...

weixin_33279929的博客 331
上一篇: MeeGo 车载娱乐系统通过GENIVI联盟正式接纳
下一篇: 如何在MeeGo Qt应用程序中加载插件(二)
moblin
博客等级 码龄18年 370粉丝 105原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值