linux下动态库(共享库)
来源:互联网 发布:手机淘宝领天猫积分 编辑:程序博客网 时间:2024/06/05 02:22
命名规则:
lib + 库名字 + .so
制作步骤:
# 1) 生成与位置无关的代码(.o文件). gcc -fPIC -c *.c -I /头文件路径 # 生产与位置无关的.o文件. # 2) 将.o打包成共享库(动态库) gcc -shared -o lib*.so *.o -I 头文件路径名.
发布和使用共享库:
发布的文件 : lib*.so及头文件.
使用共享库:
# 两种方法. gcc main.c lib*.so -I 头文件路径 -o 可执行文件名. gcc main.c -I 头文件路径 -L 库所在的目录 -l 库的名字(去掉lib和.so) -o 可执行文件名字.
解决程序执行时动态库无法被加载的问题:
ldd 命令可以查看可执行文件在执行时所依赖的所有动态库.
解决方法:
1) 将lib*.so拷贝到/lib下(不建议使用,可能会与系统带的库重名).
2) 环境变量LD_LIBRARY_PARH=lib*.so路径. # 在开发过程中测试时使用(临时).
3) vim .bashrc添加export LD_LIBRARY_PATH=动态库路径. 修改完成后要重启终端才会生效.
4) 1.找打动态连接器的配置文件 /etc/ld.so.conf
2.动态库的路径写到配置文件中.sudo vim /etc/ld.so.conf 添加动态库的路径.
3.更新 – sudo ldconfig -v
优缺点:
优点: 1. 执行程序体积小. 2. 动态库更新了,不需要重新编译程序(前提:接口未变).缺点: 1. 发布程序的时候,需要把动态库提供给用户. 2. 动态库没有打包到应用程序中,加载速度相对较慢.
注: 一般将头文件放在include文件夹里,库放在lib文件夹里,源文件放在src文件夹里.
阅读全文
0 0
- linux下动态库(共享库)
- linux下动态加载共享库
- Linux下动态共享库的使用
- linux下动态共享库搜索路径
- Linux下静态库和动态库(共享库)
- Linux下动态共享库 连接和加载路径
- linux 下 -------- 创建和调用动态共享库(.so)
- Linux下的动态共享库(so)开发调用
- Linux下动态共享库 连接和加载路径
- Linux下动态共享库 连接和加载路径
- Linux下动态共享库 连接和加载路径
- Linux下动态共享库加载及使用详解【转】
- Linux下共享库
- linux下共享库
- linux共享库动态加载
- Unix/Linux下的动态库和静态库、动态加载共享库
- linux下添加共享库
- Linux C++ 动态加载共享库
- 模拟-Codeforces 777C
- 通过spring boot构建solr查询实例
- 仿真三件套
- 克拉美罗下界 CRLB的计算
- Leetcode 122 Best Time to Buy and Sell Stock II
- linux下动态库(共享库)
- 使用foreach操作数组
- HDU 5977 树的分治+子集枚举
- 1560 扔人游戏
- Leetcode 349 Intersection of Two Arrays
- 查看linux中的TCP连接数
- 地图集web项目_技术学习(一)_前后端数据传输(ajax)
- Leetcode 350 Intersection of Two Arrays II
- Matlab学习笔记(9)——textread函数