Unix/Linux C静态库的使用

单独使用gcc的时候,不用考虑C_INCLUDE_PATH/CPLUS_INCLUDE_PATH/LIBRARY_PATH/LD_INCLUDE_PATH这些变量,但使用make的时候,就要显示地提供这些变量(如果必要)

静态库的创建与操作:
ar [drqtpmx] [options] archive.a object.o
-d: 从静态库中删除文件objfile
-r: 替换或插入objfile
-q: quick append,加入objfile without checking
-t: type打印静态库中的成员文件列表
-p: Print指定objfile
-m: move移动archive中的成员
-x: extract从静态库文件中抽取文件objfile
-c: 创建静态库文件
-s: 重置静态库文件索引

eg.释放静态库文件
#ar -x /usr/lib/libc.a
#ls *.o
_ctype.o
_cvt.o
...
xcvt.o
xstat.o

eg.创建静态库文件
#ar -svr libccc.a xcvt.o xstat.o
Creating libccc.a
#ar -t libccc.a
xcvt.o
xstat.o

eg.将静态库libpr.a相关代码链接到目标文件中
#cc main.c -L./ -lpr

#cc main.c ./libpr.a
其中-L./表在当前文件夹下寻找静态库

原文地址:https://www.cnblogs.com/hjslovewcl/p/2314334.html