Qt加载动态链接库

先制作个简单的动态链接库,再在Qt里面加载它。

【制作动态链接库】

先编写一个hello.c

1 #include <stdio.h>
2 int hello()
3 {
4     printf("hello world!\n");
5 }

在Linux下编译,生成hello.o:

gcc -c hello.c

编译成动态链接库libhello.so(注意:Linux下的动态链接库以lib开始命名):

gcc -shared -o libhello.so hello.o

 

【加载动态链接库】

在Qt中加载libhello.so,先创建一个空的Qt工程,添加新文件main.c,内容如下:

复制代码
 1  #include <stdio.h>
 2  #include <QLibrary>
 3 
 4  int main(int argc, char *argv[])
 5  {
 6      QLibrary *hello_lib = NULL;
 7      //写清楚库的路径,如果放在当前工程的目录下,路径为./libhello.so
 8      hello_lib = new QLibrary("/home/libhello.so");
 9  
10      //加载动态库
11      hello_lib->load();
12      if (!hello_lib->isLoaded()) 
13      {
14          printf("load libhello.so failed!\n");
15          return 0; 
16      }
17  
18      //定义函数指针
19      typedef void (*Fun)();
20  
21      //resolve得到库中函数地址
22      Fun hello = (Fun)hello_lib->resolve("hello");
23      if (hello)
24      {
25           hello();
26      }
27  
28      //卸载库
29      hello_lib->unload();
30      return 0;
31  }
复制代码

运行后输出:hello world!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值