关于制定so动态链接库文件需要注意的问题

本文详细介绍了如何在特定场景下动态链接SO文件,并遇到的错误问题及其解决方法,同时建议在实践中使用静态链接库以简化环境配置过程。通过实例分析,读者可以了解到在开发过程中遇到的常见问题以及有效的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如果需要动态链接制定的so文件,如libtest.so,可以如下操作:

1、假设so文件所在的目录为/usr/local/xxx/lib/libtest.so

2、在makefile文件中链接库时,直接用/usr/local/xxx/lib/libtest.so

3、vi /etc/ld.so.conf,添加一行/usr/local/xxx/lib/

4、执行ldconfig命令

5、需要注意,开发机器和运行机器上必须存在/usr/local/xxx/lib/libtest.so (3,4步开发机和运行机器都要执行)


碰到的其它问题:

error while loading shared libraries: libtest-0.8.1.so: cannot open shared object file: No such file or directory

locate 发现libtest-0.8.1.so存在于指定目录下,这是什么问题呢,列出所有相关文件发现,libtest.so和libtest-0.8.1.so大小一样,软连接的问题?删除libtest.so,执行ln -s libtest-0.8.1.so libtest.so,问题解决(由于这里的so文件都是从开发机拷贝而来,可能软连接没有一并拷贝过来,所以需要自己重新建立下)


这么繁琐?好吧,建议还是用静态链接库,虽然包大点,不会这么麻烦配置环境了~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值