为什么会出现库这个东西?
使程序更加简洁不需要在项目中维护太多的源文件
为了源代码保密,毕竟不是所有人都想把自己编写的程序开源出来。
注:发布库时候需要把头文件添加到项目中。
1. 生成静态库
以 lib 作为前缀,以.a 作为后缀,中间是库的名字自己指定即可,即: libxxx.a
通过预处理,编译和汇编得到二进制.o文件,不需要生成可执行文件,直接通过ar打包成库
其中,main.c是测试程序
gcc -c add.c div.c mult.c sub.c -I ./include
ar rcs libcalc.a *.o //rcs是ar的指定参数
静态库包含libcals.a和head.h两个,可以直接发布出去。
2. 使用静态库
gcc main.c -o Test -L ./ -l calc
-L 指定静态库路径
-l 指定静态库名字libcalc.a 需要掐头去尾
3. 动态库
以 lib 作为前缀,以.so 作为后缀,中间是库的名字自己指定即可,即: libxxx.so
gcc -c -fpic add.c div.c mult.c sub.c -I ./include/
gcc -shared *.o -o libcalc.so
4. 动态库使用
gcc main.c -L ./ -l calc -o app
./app 执行程序