Head First C 学习日志 第八章 静态库与动态库 静态库的建立与使用

Head First C 学习日志 第八章 静态库与动态库

静态库:

静态库是1个或者一组目标文件.o的归档,在连接阶段使用,生成一个可执行文件。 静态库引入的缘由是,当你的程序由多个源文件构成,而你想共享.o文件,固然你能够将全部的.o都共享,可是这样实在不方便,因而咱们就将1个活多个.o文件,归档为1个.a 静态库文件git

建立一个静态库:
  1. 将原文件编译为.o文件 gcc yourcode.c -c
  2. 使用.o文件建立静态库:ar -rcs libhfsec.a encrypt.o checksum.o
    • 命令ar表示归档
    • rcs:r表示若是.a文件存在就更新它,c表示存档时不显示反馈信息,s表示告诉ar在.a文件开头建立索引。
    • libhfsec.a:这是咱们要建立的静态库文件,注意必定要以libxxx.a命名。
    • encrypt.o checksum.o:这是咱们要归档的.o文件。
  3. 使用静态库文件gcc testrun.c -L/Users/AlexTuan/HFC/lib/stlib -lhfsec -o testrun
    • testrun.c:是咱们的main函数所在的源文件
    • -L/Users/AlexTuan/HFC/lib/stlib:-L表示,指定静态库文件所在的目录,目录能够用绝对路径和相对路径,不指定则从系统默认的静态库路径查找。
    • -lhfsec:指定咱们要使用的静态库libhfsec.a,这就是咱们要以libxxx.a格式命名的缘由,能够用-lxxx的方式来指定咱们的静态库。
  4. 使用make自动构建
encrypt.o:encrypt.c encrypt.h
	gcc -c encrypt.c
checksum.o:checksum.c checksum.h
	gcc -c checksum.c
testrun.o:testrun.c
	gcc -c testrun.c
libhfsec.a:encrypt.o checksum.o
	ar -rcs stlib/libhfsec.a encrypt.o checksum.o
testrun:testrun.o libhfsec.a
	gcc testrun.o -L./stlib -lhfsec -o testrun
要点
  1. 一个库有多个目标文件
  2. 使用ar命令建立静态库
  3. 静态库命名要以libxxx.a的格式,调用时直接-lxxx
代码

lib samplegithub

相关文章
相关标签/搜索