前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >借助qt creator创建属于自己的共享库

借助qt creator创建属于自己的共享库

作者头像
用户5908113
发布2019-07-30 15:36:03
1.1K0
发布2019-07-30 15:36:03
举报
文章被收录于专栏:Pou光明Pou光明

简介:

在 Windows 上,共享库由 .dll 表示;在 Linux 上,由 .so 表示。

Shared Library的优势

共享库,又称动态库或so文件,顾名思义,它可以在可执行文件启动时加载或进程运行期被调用。使用共享库有很多好处,例如(包含但不限于下面提到的场景):

1) 减少了依赖共享库的模块的大小,因为它们不必把共享库提供的功能的实现代码静态编译到自己的模块代码中。

2) 在同一台机器上运行的多个进程会在内存中共享同一份动态库,操作系统采用的这种内存布局方式可以极大地节省机器内存资源。

3) 若很多模块依赖了以共享库形式提供的同一个底层库,则底层库升级时,只需升级该so文件即可,无需重新编译应用模块;而若底层库以静态编译形式集成在上层模块内部时,则需要重新

编译每个依赖了该库的模块。

3) 即使某些so库新版本不满足后向兼容也可以升级,某些不支持新版so库的应用程序可以不受影响,继续使用旧版本。

4) 应用程序可以利用so库覆盖某些库,还可以覆盖库中的某些函数(即仍使用某库,但该库中的某些函数被so库的同名函数覆盖)。

由于shared library有其独特的场景应用优势,因此*NIX操作系统的底层库基本都以共享库(*.so)形式提供,其实,windows操作系统底层库也是以共享库(*.dll)形式提供的。

接下来是.h文件的内容:

#ifndef GENERATESHARELIB_H

#define GENERATESHARELIB_H

class GenerateShareLib

{

public:

GenerateShareLib();

int add(int x, int y);

};

#endif // GENERATESHARELIB_H

接下来是.cpp文件的内容:

#include "generatesharelib.h"

GenerateShareLib::GenerateShareLib()

{

}

int GenerateShareLib::add(int x, int y)

{

return x + y;

}

主要是.pro中的内容:

QT -= core gui

TARGET = GenerateShareLib

TEMPLATE = lib

DEFINES += GENERATESHARELIB_LIBRARY

SOURCES += generatesharelib.cpp

HEADERS += generatesharelib.h

unix {

target.path = /usr/lib

INSTALLS += target

}

生成共享库的截图如下:

这次主要和大家分享Linux下借助qt creator如何创建共享库,下次和大家分享在Linux下如何使用共享库。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-01-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Pou光明 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档