linux C 动态库和静态库生成及使用笔记
需积分: 0 50 浏览量
更新于2023-06-30
收藏 16KB DOC 举报
"linux C 动态库和静态库生成及使用笔记"
Linux C 动态库和静态库是两种不同的库类型,它们在生成、使用和链接时有着不同的机制和要求。下面我们将详细介绍 Linux C 动态库和静态库的生成、使用和链接机制。
一、动态库生成和使用
动态库是一种可以被多个程序共享的库文件,它可以在运行时被加载和卸载。生成动态库需要两步:使用 gcc 编译器将源文件(例如 hello.c)编译成二进制指令文件(例如 hello.o);将 hello.o 文件打包生成库文件(例如 libhello.so)。需要注意的是,Linux 中动态库的命名规则是 lib 自定义名称.so,例如 libhello.so。
links to the library file during the linking phase. To solve the problem of the linker not finding the dynamic library, we can adopt the following methods:
1. 将我们自己写的库文件添加到系统库文件的存储目录中,这样系统链接时就可以找到了。
2. 使用环境变量,将我们自己的库文件的路径配置到 LIBRARY_PATH 环境变量中,系统就会在这里面找到我们的库文件路径。
在运行可执行程序时,需要将动态库加载到内存中。我们可以将我们自己的库文件添加到系统库文件的存储目录中,或者使用环境变量 LD_LIBRARY_PATH,将我们自己的库文件的路径配置到该变量中。
二、静态库生成和使用
静态库是一种在编译时被复制到程序中的库文件。生成静态库需要两步:使用 gcc 编译器将源文件(例如 hello.c)编译成二进制指令文件(例如 hello.o);将 hello.o 文件打包生成库文件(例如 libhello.a)。
在使用静态库时,不需要考虑动态库的加载问题,因为静态库已经被编译到程序中了。我们可以使用 gcc -L 指定库文件链接路径,例如:
gcc main.c -o main -L 路径 库名称
Linux C 动态库和静态库都是库类型,它们在生成、使用和链接时有着不同的机制和要求。理解和掌握动态库和静态库的生成、使用和链接机制对于编写高效、可靠的程序是非常重要的。
请表打扰我学习
- 粉丝: 1
- 资源: 2
最新资源
- YOLO算法-管道缺陷数据集-1000张图像带标签--裂纹-孔-屈曲-碎片.zip
- 有道打赏视频/支付已对接/自带资源
- YOLO算法-火灾探测数据集-360张图像带标签-火灾.zip
- YOLO算法-可乐罐子数据集-336张图像带标签-可乐.zip
- YOLO算法-家具数据集-689张图像带标签-椅子-表格-沙发.zip
- YOLO算法-实验室垃圾版数据集-750张图像带标签-金属-硬质塑料-软塑料-硬纸板.zip
- YOLO算法-快递衣物数据集-496张图像带标签.zip
- YOLO算法-椅子检测数据集-240张图像带标签-.zip
- YOLO算法-塑料垃圾数据集-290张图像带标签-塑料.zip
- YOLO算法-实验室垃圾版数据集-750张图像带标签-不是纸板-硬纸板.zip
- YOLO算法-列车检测数据集-392张图像带标签-火车.zip
- YOLO算法-挖掘机与火焰数据集-200张图像带标签-挖掘机.zip
- YOLO算法-垃圾桶图像数据集-258张图像带标签-垃圾桶.zip
- 【组合数学答案】组合数学-苏大李凡长版-课后习题答案
- YOLO算法-贴纸检测数据集-212张图像带标签-部分覆盖-未涵盖-完全覆盖.zip
- YOLO算法-椅子检测故障数据集-300张图像带标签.zip