静态库与动态库
定义:
静态库(.a):
在编译时将库文件里的代码搬迁到可执行文件里
动态库(.so):
在执行时将需要的库文件里的代码搬迁到可执行文件里
区别:
静态库:可执行文件体积大;运行效率高;不易升级;编译速度慢;布局方便
动态库:可执行文件体积小;运行效率低;易升级;编译速度快;布局麻烦
选择:
从区别进行选
制作和使用:
编写两个简单的测试程序如下:
Message.c
#include<stdio.h>
Void goodbye_word(void)
{
Printf(“goodbye_word!\n”);
}
Main.c
#include<stdio.h>
Void goodbye_word(void)
Int main(int argc ,char **argv)
{
goodbye_word();
return 0;
}
静态库:
1.将message.c编译成.o文件;gcc -c mesage.c
2.由.o创建静态库;ar rcs libmessage.a message.o lib(前缀),.a(后缀),message(起名)
3.在程序中使用静态库; gcc main.c -lmessage -L/root/0706/ -L(指定库的路径)
4.运行程序;./message
动态库:
1.gcc -shared -fpic message.c -o libamessage.so
2.Gcc main.c ./libmessage.so -o message