Linux系统编程笔记
Liunx下有2种库:静态库、动态库(对应编译也有静态编译与动态编译)
静态库:
简述:在程序编译的时候会被链接到目标代码里面,在运行该程序时就不再需要该静态库了。
特点:编译出来的代码体积比较大(因为库被链接进去了嘛),移植比较方便。
辨别:静态库以 lib开头,以 .a 结尾。
制作步骤:
1、编写或准备库的原代码
2、将源码 .c 文件编译成 .o 文件
gcc -o test.c
3、使用 ar 命令创建静态库(注意命名格式)
ar cr libtest.a test.o // cr 分别表示create创建、replace代替
libtest.a -->库文件名 mylib -->库名
4、测试库文件
动态库:动态库与静态库相对也叫共享库
简述:在程序编译的时候不会被链接到目标代码里面,是在程序运行的时候被载入的,所以在运行该程序时仍然需要该动态库。
特点:对应编译出来的代码体积就比较小,不方便移植。
辨别:静态库也以 lib开头,以 .so 结尾。
制作步骤:
1、编写或准备库的原代码
2、将源码 .c 文件编译成 .o 文件
gcc -c -fpic test.c //这里用了-fpic 与静态库不同,因为动态库会被多个地址加载
3、使用 gcc 命令创建静态库(注意命名格式)
gcc -shared -o libtest.so test.o
4、测试库文件
鸣谢:迅为电子
完