Linux Qt创建和调用so库的详细教程

一、创建so库

1.文件-->新建文件或项目-->Library->C++ Library,如下图

2.工程命名为Example

3.一直下一步就可以

4、工程创建完成,如下图

5、删除Example_global.h

6、配置.pro文件

# 设置输出目录
DESTDIR = $$PWD/output
#只生成.so文件
CONFIG += plugin

7、在Example.h头文件中添加int Add(int a,int b)函数

8、在example.cpp中实现int Add(int a,int b)

9、构建,在Example工程目录下回多出1个output目录,生成的.so文件就存在在output目录下。

二、调用

1、文件--》新建文件或项目---》Application-->Qt Widegets Application

2、工程名称为TestSo,一直点击下一步就完成。

3、在TestSo目录下新建1个include和lib目录,用来存放所要调用so库的头文件和.so文件,如下图

4、修改.pro文件

# 设置头文件路径
INCLUDEPATH += $$PWD/include
# 设置库路径和库名称
LIBS += -L$$PWD/lib/ -lExample
# 设置输出目录
DESTDIR = $$PWD/output
# 在构建完成后将 lib 目录下的文件拷贝到 output 目录
QMAKE_POST_LINK += $$quote(cp -r $$PWD/lib/* $$PWD/output/)

5、引入头文件,调用Add方法,并点击构建,如下图

6、在TestSo目录下就可以生成1个output,里面存放可执行程序TestSo和libExample.so

7、单独运行TestSo,在终端上输入./TestSo,出现找不到链接库

8、在终端输入ldd TestSo,发现libExample.so not found,

ldd TestSo

解决方法:

方法一:

1、在终端上设置链接库的路径

export LD_LIBRARY_PATH=$PWD:$LD_LIBRARY_PATH

2.ldd在查看一下,libExample.so 已经链接成功

3、执行./TestSo

./TestSo

方法二:

1、创建1个脚本文件,命名为run.sh

vi run.sh

2、在run.sh文件中添加一下内容

#!/bin/bash
export LD_LIBRARY_PATH=$PWD:$LD_LIBRARY_PATH
./TestSo

3、修改run.sh权限

chmod 775 run.sh

4、在终端上执行./run.sh

./run.sh

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值