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库。