程序员笔记 (八十二)QLibrary


外向笑小鸭子
外向笑小鸭子 2024-01-12 14:25:15 53319 赞同 0 反对 0
分类: 资源 标签: 运维
程序员笔记 (八十二)QLibrary
描述
QLibrary 对象的实例对单个共享对象文件(库文件)进行操作。QLibrary 以独立于平台的方式提供对库中功能的访问。可以在构造函数中传递文件名,也可以使用 setFileName() 显式设置它。加载库时,除非文件名具有绝对路径,否则QLibrary 将搜索所有系统特定的库位置(例如 Unix 上的 LD_LIBRARY_PATH)。
如果文件名是绝对路径,则首先尝试加载此路径。如果找不到文件,QLibrary 会尝试使用不同平台特定的文件前缀(如 Unix 和 Mac 上的“lib”)和后缀(如 Unix 上的“.so”、Mac 上的“.dylib”或“.dylib”、在 Windows 上的“.dll”)。
如果文件名不是绝对路径,那么 QLibrary 会修改搜索顺序以首先尝试系统特定的前缀和后缀,然后是指定的文件路径。这使得指定仅由其基本名称(即没有后缀)标识的共享库成为可能,因此相同的代码可以在不同的操作系统上运行,但仍然可以最大限度地减少尝试查找库的次数。
因为 QLibrary 会自动查找具有适当后缀的文件,所以建议在文件名中省略文件的后缀。
QLibrary 的多个实例可用于访问同一个物理库。加载后,库将保留在内存中,直到应用程序终止。
解析库中的导出符号
QLibrary 的典型用途是解析库中的导出符号,并调用该符号表示的 C 函数。这被称为“显式链接”,与“隐式链接”相反,当将可执行文件链接到库时,这是由构建过程中的链接步骤完成的。
以下代码片段加载一个库,解析符号“mysymbol”,并在成功时调用该函数。如果出现问题,例如库文件不存在或符号未定义,函数指针将为 nullptr 且不会被调用。

如果您发现该资源为电子书等存在侵权的资源或对该资源描述不正确等,可点击“私信”按钮向作者进行反馈;如作者无回复可进行平台仲裁,我们会在第一时间进行处理!

评价 0 条
外向笑小鸭子L0
粉丝 0 资源 87 + 关注 私信
最近热门资源
银河麒麟桌面操作系统备份用户数据  123
统信桌面专业版【全盘安装UOS系统】介绍  116
银河麒麟桌面操作系统安装佳能打印机驱动方法  108
银河麒麟桌面操作系统 V10-SP1用户密码修改  101
最近下载排行榜
银河麒麟桌面操作系统备份用户数据 0
统信桌面专业版【全盘安装UOS系统】介绍 0
银河麒麟桌面操作系统安装佳能打印机驱动方法 0
银河麒麟桌面操作系统 V10-SP1用户密码修改 0
作者收入月榜
1

prtyaa 收益393.62元

2

zlj141319 收益217.85元

3

1843880570 收益214.2元

4

IT-feng 收益208.98元

5

风晓 收益208.24元

6

777 收益172.71元

7

Fhawking 收益106.6元

8

信创来了 收益105.84元

9

克里斯蒂亚诺诺 收益91.08元

10

技术-小陈 收益79.5元

请使用微信扫码

加入交流群

请使用微信扫一扫!