记录一下遇到的问题:
Linux系统下Qt编译第三方动态库会生成多个.so文件,不了解的小伙伴可能很疑惑:
(1)Linux 下 QT 生成的(.o)、(.a)和(.so)三个文件的区别
(.o)就相当于windows里的obj文件;
(.a)即 linux 下的静态链接库(Statically Linked library),或称静态库;
(.so)即 linux 下的共享库(Shared library),或称动态库;
【备注】在VS中静态库的后缀名为(.lib);动态库的后缀名为(.dll)。
(2)Linux 下 QT 生成的(.so)、(.so.1)、(.so.1.0)和(.so.1.0.0)四个文件的区别
QT在生成动态库时,会默认生成(.so)、(.so.1)、(.so.1.0)、(.so.1.0.0)四个文件。
其中,(.so.1.0.0)为实际的动态库文件,(.so)、(.so.1)、(.so.1.0)均为软链接,都是指向(.so.1.0.0)的链接文件,为了版本控制。
如果不需要Qt生成版本控制,只要单独的so,在pro文件中添加:
CONFIG += plugin
加上之后,使用QCreator编译完之后只会生成一个.so文件;