gcc 静态链接库
以 math.c为例
gcc -c math.c
ar rcs libmath.a math.o
ar命令 将多个文件打包成一个备份文件
参数r:用来替换库中已有的目标文件,或加入新的目标文件
参数c: 表示创建一个库,不管库是否存在,都将创建
参数s:用来创建目标文件的索引,这在创建较大的库时能够提高速度
静态链接库制作好之后的使用
gcc main.c -lmath -o main
gcc 动态链接库
以math.c为例
gcc -fPIC -c math.c
# -fPIC (Position-Independent Code),用于编译阶段,产生与位置无关的代码
gcc -shared math.o -o libmath.so
# -shared 用于链接阶段,生成可动态加载的so库
动态链接库制作好后的使用:
gcc main.c -lmath -o main
注意:需要将生成的libmath.so放到 /usr/lib 目录之下,或者是在运行时设置 LD_LIBRARY_PATH 环境变量。