Linux和windows一样也有自己的库文件,这样可以使程序模块化。
Windows系统包括静态链接库(XXXX.lib文件)和动态链接库(XXXX.dll文件)
Linux 库文件包括静态库文件(libXXXX.a文件)和动态链接库(XXXX.so文件)
本文重点介绍Linux系统中的库文件的建立与使用
在Linux系统中静态库文件和动态库文件在使用的时候被加载的时间不同
静态库文件:
在编译原文件时就被拷贝到可执行程序中,因此加载静态库的程序体积比较大,但是可以再没有这些库文件的位置执行。
动态库文件:
在编译原文件时只是简单的对库文件进行引用,在程序执行的时候才被载入内存中,所以相对来说体积比较小,被编译的源文件只能附带着那些动态库才可以执行。
两种库的区别说了一部分
下面用一个实例来说明静态库的建立与使用:
头文件mylib.h
#define MYLIB_H
void welcome();
void output(const char *str);
源文件 mylib.c
#include "mylib.h"
#include <stdio.h>
void welcome(void)
{
printf("welcome !!!\n");
}
void output(const char *str)
{
if(str != NULL)
printf("%s\n", str);
}
1、编译mylib.c生成目标文件gcc -c mylib.c
2、将目标文件加入到静态库:ar rcs
3、编写测试程序 test.c
源文件test.c
#
include "mylib.h"
#include <stdio.h>
int main()
{
welcome();
output(" successful!!!\n");
return 0;
}
4、使用静态库编译:gcc -o test test.c -static -L. -lmylib
5、然后使用命令ls 查看产生可执行文件test 然后执行就可以了
现在就理解到这了,错误的地方得到指导,谢谢!