Linux下(windows也是一样的),有静态库和动态库之分
库文件区别
静态库文件 动态库文件
文件类型区分 .a .so
作用 在C文件预编译时,载入程序 在程序运行时,随程序需求进行调用
两种库文件的制作步骤
静态库文件制作:
1、创建 .c 源码文件,并利用GCC编译器(vim终端)对 .c 文件编译:gcc .c -o 生成 *.o 文件(可执行二进制文件);
2、利用 .o 文件制作静态库文件: ar crs lib .a .o (lib 为静态库名称);
3、使用静态库文件编译工程:gcc -o * #.c -L. -l* -L. 意为:先在当前编译目录下查找,再去/lib(系统库)查找所需库文件。
动态库文件制作:
1、创建.c 文件,利用动态库可执行文件制作指令:gcc -fPIC -Wall -c .c ,生成可执行二进制文件;
2、利用可执行二进制文件制作动态库文件:gcc -shared -o lib*.so * ,生成动态库文件(库名:lib*)
3、拷贝lib*.so文件到”/lib”或”/usr/lib”目录下,即将自制的动态库文件加入系统默认目录以便使用;
4、使用自制的动态库文件:gcc -o # #.c -L. -l*