静态库:会在编译时装载到文件中,占用编译时间
取名方式:lib库名.a
1.目标文件的获取:gcc -c yyy.c 编译出 yyy.o2.命令:ar -cr lib库名.a yyy.o
头文件发布(cp)到:/usr/local/include
库文件发布到:/usr/local/lib
编译加上链接选项:gcc -o main mian.c -l库名
-l参数必须在最后
动态库:仅仅是引用,在运行时找到指定的库函数使用,占用运行时间
取名方式:lib库名.so
1.命令:gcc -shared -fpic -o lib库名.so yyy.c
2.头文件发布到:/usr/local/include
3.库文件发布到:/usr/local/lib
4.在/etc/ld.so.conf中添加路径:/usr/local/lib
5.配置好配置文件后,需要让系统重新读一遍配置文件:
/sbin/ldconfig 回车
6.编译加上链接选项:gcc -o main main.c -l库名
当动态库和静态库重名的时候优先加载动态库
通过ldd ./程序 可以查看当前程序所链接的动态库
如果同时链接多个库需要指明多个-l,被依赖库写在目标库之后
如果觉得编译麻烦可以写入到makefile中:
LDFLAGS+=-l库名 -l库名
$(LDFLAGS):可以引用该变量