定义

  • 库是一种可执行的二进制文件,是编译好的文件

分类

静态库

程序编译时会被链接到目标代码,在程序运行时不需要该静态库。 编译出的体积较大 以lib开头,.a结尾

动态库

在运行时包含,也叫共享库。 以lib开头,.so结尾

制作

静态库制作步骤

  1. 编写或准备库的源代码
  2. 将源码.c文件编译生成.o文件
  3. 使用ar命令创建静态库
  4. 测试库文件
  • 举例:
libmylib.a:库文件名
 
mylib:库名
  • mylib.c
#include<stdio.h>
void mylib(void);
void mylib(void)
{
    printf("This is mylib\n");
}

动态库制作步骤

  1. 编写或准备库的源代码
  2. 将源码.c文件编译生成.o文件
  3. 使用gcc命令创建动态库
  4. 测试库文件
  • 举例:
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更新目录