Linux下如何使用CMake实现动态库的封装与调用

 一、动态库的封装

1.创建工程

首先创建一个qt工程(这里我采用的是ui工程)

这里选择Widget工程

名字取一个和动态库相关的即可,我这里取的UIDLL

这里选择CMake

这里我选择命名为Dynamic

kits采用Qt 5.14.2 GCC 64bit,之后直接下一步即可。

2.新建文件

新建global_define.h、interface.h以及interface.cpp文件(这里没有main.cpp文件是因为我在cmake中去掉了)

global_define.h文件中定义如上所示,UIDLL_SHARED_EXPORT为我们要使用的导出宏

之后在CMakeList.txt中添加add_library,其中的UIDLL表示导出的动态库名称,SHARED表示导出的是动态库,之后则是导出动态库所有的依赖文件。如果文件太多可以选择使用下述字段

FILE(GLOBAL_RECURSE CPPS RELATIVE ${CMAKE_SOURCE_DIR} *.cpp *.h *.ui)

之后在写add_library的时候就可以用下述语句了

add_library{UIDLL SHARED
    ${CPPS}
}

修改完CMakeList.txt后,在interface.h和interface.cpp中分别写如下代码:

之后直接构建即可。构建完成会在生成目录生成.so文件,如下所示

二、动态库的调用

1.创建调用DLL的工程

这块和上面创建CMake工程一样

2.调用dll

首先在调用dll的工程下创建下面两个文件夹

然后,将dll工程中的interface.h和global_define.h文件放进去

此外,将生成的.so文件放到lib文件夹和生成目录中

之后,在CMakeList.txt文件中加上下述代码

之后,在需要的地方引入interface.h头文件即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值