动态链接库

1、Windows上是dynamic   link   library (DLL),后缀?xxx.dll嘛!
2、UNIX或Linux上是Shared   Library .后缀是啥?xxx.so嘛!

为了好理解我们暂时不要拘泥于动态库的形式 ,我们就理解为把其封装为类库,其他程序都可以动态调用就完事了。

3.编译成so库

 gcc -shared me.c -o libme.so

你必须在编译的时候,手动指定我的动态链接库在哪
gcc –L /root/ -l me shenyi.c -o shenyi
-L 动态链接库的文件夹位置
    -l 动态链接库的库名 (去除最前面的lib和.so就是库名)


接下来你会发现编译成功了,但是运行依然失败,失败原因是操作系统无法找到.

原因分析:其实Linux和windows一样,有个类似system32的系统库文件夹。各种公共类库都放于此
CentOS中有和windows很类似的两个存放公共库的文件夹
/lib  内核级
/usr/lib  用户系统级
/usr/lib64/  64位系统才有
你要把你做好的库  瞎放也没关系

成功的做法:

把我们做的SO文件拷贝到这里面去
新命令 cp 源文件  目标文件夹 
然后执行ldconfig (这个命令我们后面还会讲到)
暂时姑且认为 linux把动态库缓存起来了。加了新玩意儿需要重新更新缓存


总结:1生成so文件

2手动指定so文件

3使用idconfig缓存一下

4执行



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值