Linux入门基础操作(ubuntu20.04)(八)
动态库的创建与使用:
1)命名规则
lib+name+.so
2)制作步骤
gcc -fPIC -c xxx.c:生成与位置无关的代码(生成与位置无关的.o文件)
gcc -shared -o libxxx.so xxx.o:将.o文件打包成动态库
3)发布和使用动态库
示例:
文档结构如下:(具体文件内容在上一篇)
终端执行命令;
解决动态库链接失败问题:
动态库 not find
ldd +可执行程序:查看依赖共享库的名字
解决办法:
1)临时测试(关闭终端后失效)
创建文件夹lib,将动态库文件放入lib中,执行如下命令:
2)永久生效
cd
ls -a
vi .bashrc
末尾添加:export LD_LIBRARY_PATH=动态库绝对路径
3)永久生效
1.需要找到动态链接器的配置文件
cd
cd /etc/
vi ld.so.conf
2.将动态库的路径写到配置文件中(末尾)
3.更新配置文件
sudo ldconfig -v
动态库的优缺点:
优点:
(1)执行程序体积小
(2)动态库更新,不需要重新编译程序(前提是函数的接口不变)
缺点:
(1)发布程序的时候需将动态库提供给用户
(2)动态库没有被打包,加载速度相对较慢