Linux下gcc编译动态链接库

我写了如下程序:

1、sayhello.c用于生成动态链接库libsayhello.so【路径和main.c和my_so.h路径不同】

2、my_so.h头文件用于预处理过程中函数的声明


3、main函数,实现动态库函数的调用



刚开始用gcc -o sayhello.so -fPIC -shared  sayhello.c编译生成sayhello.so动态链接库,

结果在执行编译main函数出现


后经过验证生成的动态库要以lib。。。的形式,重新完成生成动态库libsayhello.so

执行如下即可实现【-l库名,系统自动加上lib关键字】【如果我将my_so.c写到链接后面,也会提示报错,需进一步验证原因】


完成之后,执行ldd查看my_so依赖的库


又找不到了,原因是我的路径和库路径不在一起并且库路径并没有在系统库路径里,虽然编译链接过了,但是还是没有配置系统库路径,还是找不到的,执行此程序当然也就会报错了,后我将libsayhello.so拷入到/usr/lib下,即可正常,ldd查看链接库状态也正常了...


链接库位置在/etc/ld.so.conf中,明天看看将自己定义的动态库路径添加到系统库路径中...



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值