定义
- 库是一种可执行的二进制文件,是编译好的文件
分类
静态库
在程序编译时会被链接到目标代码,在程序运行时不需要该静态库。
编译出的体积较大
以lib
开头,.a
结尾
动态库
在运行时包含,也叫共享库。
以lib
开头,.so
结尾
制作
静态库制作步骤
- 编写或准备库的源代码
- 将源码
.c
文件编译生成.o
文件 - 使用
ar
命令创建静态库 - 测试库文件
- 举例:
libmylib.a:库文件名
mylib:库名
mylib.c
#include<stdio.h>
void mylib(void);
void mylib(void)
{
printf("This is mylib\n");
}
动态库制作步骤
- 编写或准备库的源代码
- 将源码
.c
文件编译生成.o
文件 - 使用
gcc
命令创建动态库 - 测试库文件
- 举例:
gcc test.c -lmylib -L
-l:指定动态库的库名
-L:指定动态库的查找位置。-L . 表示在当前目录下去查找
动态库路径
法一:将动态库拷贝到
/lib
或/usr/lib
中
法二:添加环境变量\
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/imx/linux/13
,仅在当前窗口有效
法三:修改配置文件
/etc/ld.so.conf
,添加动态库路径,并使用ldconfig
更新目录