1.静态库
1.将 .c 生成 .o 文件
gcc -c add.c -o add.o
2.使用 ar 工具制作静态库
ar rcs lib库名.a add.o sub.o div1.o
3.编译静态库到可执行文件中
gcc test.c lib库名.a -o a.outps
2.动态库
1.将 .c 生成 .o 文件(生成与位置无关的代码 -fPIC)
gcc -c add.c -o add.o -fPIC
2.使用 gcc -shared 制作动态库
gcc -shared lib库名.so add.o sub.o div1.o
3.编译可执行程序时,指定所使用的动态库。
ps: -i:指定库名(去掉lib前缀和 .so 后缀)-I:指定库路径
gcc test.c -o a.out -l mymath -L ./lib
4.运行可执行程序,会出错。
原因:动态链接器,工作于程序运行阶段,需要提供动态库所在目录位置。
解决方法:
link
如有错误,欢迎大家留言指正。