QT 生成 动态库 的问题 (***)带笔记

QT 生成.so动态库 (增加了注释)

QT 生成.so动态库时,会默认生成.so .so.1 .so.1.0 .so.1.0.0四个文件,其中其他三个文件都是指向.so.1.0.0这个实际的库文件的链接文件,为了版本控制。

注:so .so.1 .so.1.0 的图标显示为:快捷链接图标。

.so.1.0.0显示为:真实文件图标。

要想直接生成.so作为实际库文件,可以在.pro工程文件中添加CONFIG += plugin项。

 

————————————————
版权声明:本文为CSDN博主「gjh_helloworld」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_30946721/article/details/106719339 

QT生成动态库,为什么要同时保留.so的和.so.1的动态库链接

pro文件一般格式为:

QT -= gui
TEMPLATE = lib
DEFINES += DLL_LIBRARY
CONFIG += c++11

一般会生成四个文件:
这4个动态库(.so .so.1 .so.1.0 .so.1.0.0)前三个都是链接连接到.so.1.0.0这个实实在在的库,前三个均为软链接。软链接基本作用就是版本迭代,如果你需要更换版本,只需要把.so的指向改掉就好了,不用改.so的名字

当在pro文件加入 CONFIG += plugin ,则会生成.so一个库。
————————————————
版权声明:本文为CSDN博主「老菜鸟的每一天」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u011942101/article/details/105676208

QT生成动态链接库.so文件

https://blog.csdn.net/zzyy0929/article/details/78529244

1. 其中需要注意的是,构造函数和类同名,他不能有返回值。不能是int和void类型,都不正确。

所以需要有返回值的时候,函数名不能和类同名!之后我们还可以写别的函数。都放在这个类中。

 

2. 带类名

下面说调用这个函数:

新建一个工程,注意在pro文件中需要将lib的目录和.so的目录加进去。

lib目录(就是.h文件所在目录):INCLUDEPATH +=/home/will/Projects/pluginTest/

.so目录为:LIBS += -L/home/will/Projects/build-mm-Desktop-Debug\

                                 -lmm (一定不能少了这个,这个是库的名字l+类名)
如下图所示:

 

在main.cpp中调用这个函数。

int main(){

Mm mm;//需要先新建这个对象

int c=mm::aa(2,5);//mm这个对象中有aa这个函数,这样就实现了调用。

printf("%d\n",c);

}

————————————————
版权声明:本文为CSDN博主「zzyy0929」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zzyy0929/article/details/78529244

笔记 1

1. 在 win OS下编译,选择动态库Qt Creator选项:生成的动态库为 .dll;以及 .a库,是没有生成 .so库的。

2. 在linux OS下编译,选择动态库Qt Creator选项:生成 .so库

 

### 回答1: 这个问题的意思是:在Linux下如何生成动态库Qt库。 回答是:在Linux系统中,可以使用Qt构建系统(qmake)来生成静态库和动态库。在.pro文件中使用以下语句来生成动态库: template=lib target.path=/usr/local/lib target.name=MyLib CONFIG += shared库名称为MyLib,它将被安装到/usr/local/lib目录下。 ### 回答2: 在Linux操作系统下,我们可以通过使用Qt库来生成动态库动态库是一种链接到可执行二进制文件中的代码库,与静态库不同的是,动态库只有在运行时才会被加载,而不是在编译时。这样可以有效地降低可执行文件的大小,并且允许多个应用程序共享同一个库。Qt库提供了一些工具和命令,用于从一个应用程序项目构建动态库。 以下是在Linux系统中生成动态库的步骤: 步骤1:创建一个Qt库工程项目 在Qt Creator中,选择“File”->“New File or Project”->“Library”->选择“C++ Library”->“Choose”->填写项目名称、路径和描述信息等,然后单击“Next”。选择“Dynamic Library”并保留默认选项,然后再次单击“Next”以设置库选项。 步骤2:设计和实现代码 在Qt库工程项目中设计和实现代码,将需要导出的类和函数添加到头文件中。在该文件头中使用Q_DECL_EXPORT宏修饰这些类和函数。这将确保这些类和函数将作为库的一部分被正确导出。 步骤3:编译库 在Qt Creator中单击“Build”以编译库。在构建过程中,Qt Creator将生成一个.so文件(用于Linux)或.dll文件(用于Windows)。 步骤4:使用库 在使用库的代码中,使用#include指令包含库头文件,然后使用库中导出的类和函数。 总之,通过以上步骤,我们可以在Linux操作系统中使用Qt创建动态库。这样可以使我们的程序变得更加灵活,增强程序的可复用性。 ### 回答3: 在Linux操作系统下,Qt生成动态库的方法如下: 1. 编写Qt动态库代码 首先,需要编写Qt动态库代码。通常我们可以用Qt Creator创建C++项目,选择动态库类型,在新建的项目中编写动态库的代码。在编写代码的时候,需要使用Qt的相关库函数。 2. 配置项目的.pro文件 在Qt Creator中打开项目的.pro文件,进行配置,使其生成动态库。具体配置如下: TEMPLATE = lib # 指定项目类型为动态库 QT += core gui # 添加需要用到的Qt库函数 TARGET = MyLib # 指定生成文件名 SOURCES += MyLib.cpp # 添加源代码文件 此外,还需要在.pro文件中添加以下配置,用于指定生成目标是一个动态库: CONFIG += shared DEFINES += MYLIB_LIBRARY # 定义变量,用于在生成动态库中引用 3. 编译和生成动态库Qt Creator中,选择菜单“Build”-->“Build All”,编译项目。编译成功后,在项目的构建目录下,生成文件名为libMyLib.so的动态库文件。 4. 在其他项目中使用动态库 在其他Qt项目中使用生成动态库,只需要在.pro文件中添加以下配置: LIBS += -L/path/to/lib -lMyLib 其中,-L指定动态库文件所在的目录,-l指定动态库的名称。这样,在进行编译和链接时,就可以正确地引用动态库函数了。 总结: Qt生成动态库的过程比较简单,只需要编写动态库代码和配置.pro文件即可。生成动态库可以在其他Qt项目中直接使用,方便快捷。使用动态库的好处是可以将代码模块化,提高代码的复用性和维护性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值