linux 动态库的制作和使用

在这里插入图片描述
step1.首先生成与位置无关的代码 (生成与位置无关的.o)

gcc -fPIC -c *.c -I ../include/

在这里插入图片描述
step2.生成动态库

gcc -shared -o libMycalc.so *.o -I ../include
mv libMycalc.so ../lib

在这里插入图片描述
step3.用户结合main.c使用动态库、头文件进行编译,生成可执行文件
1.

gcc main.c ./lib/libMycalc.so -I ./include -o mysum

在这里插入图片描述
2.

gcc main.c -I ./include -L ./lib -l Mycalc -o mysum      也就是-I 头文件所在目录 -L 动态库所在的目录 -l 动态库名(掐头去尾) -o 可执行文件名
./mysum

在这里插入图片描述
发现报错了!这是为什么呢?如下图所示:
在这里插入图片描述
在这里插入图片描述
里面说libMycalc.so没有找到

解决动态库链接失败的问题

法1:临时设置

export LD_LIBRARY_PATH=./lib

在这里插入图片描述
法2:永久设置
首先,在家目录下找到.bashrc文件
在这里插入图片描述

sudo vi ./bashrc

在最后一行加上绝对路径:

export LD_LIBRARY_PATH=/home/shenhang/gcc_about/lib

然后重启终端就可以了。
法3:修改配置文件(最常用的方法)

  1. 需要找动态连接器的配置文件 – /etc/ld.so.conf
  2. 动态库的路径写到配置文件中 – 绝对路径
  3. 更新 – sudo ldconfig -v
    在这里插入图片描述
sudo vi /etc/ld.so.conf
加一行绝对路径:/home/shenhang/gcc_about/lib
sudo ldconfig -v

这样就可以了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值