静态库:编译时,链接所有需要的库。
优点:对运行环境没有要求。
缺点:文件大。
制作步骤:以编写main文件为列
1、编写main.c,print.c,show.c。
2、将show.c和print.c文件转为二进制文件。
gcc -c show.c print.c
3、制作静态库。
ar -crv libxxx.a show.o print.o
注:libxxx.a是格式。xxx是库名,.a表示的是静态库。下面的.so表示的是动态库
4、静态编译。
gcc main.c -o main -L . -lxxx -static
注:-L . 中-L表示静态库的位置。 .表示静态库就在当前目录下。-l表示静态库的名字。xxx表示静态库具体的名字。-static表示这是静态编译。
5、运行
./main 运行main文件,查看是否存在错误,是否能编译成功。
动态编译:编译时,不链接库文件。
优点:文件小。
缺点:对运行的环境有要求。
制作步骤:以main文件为列
1、制作动态库
gcc -fPIC -shared -o libxx.so print.c show.c
注:PIC是大写
2、动态编译
gcc main.c -o main -L . -lxx
3、将动态库复制到默认系统下。
cp libxx.so /usr/lib
4、运行文件
./main
2019/7/19