Head First C 学习日志 第八章 静态库与动态库 静态库的创建与使用
2016-04-01 00:00
453 查看
摘要: 使用多个原文件创建一个静态库
静态库是1个或者一组目标文件.o的归档,在链接阶段使用,生成一个可执行文件。
静态库引入的原因是,当你的程序由多个源文件构成,而你想共享.o文件,当然你可以将所有的.o都共享,但是这样实在不方便,于是我们就将1个活多个.o文件,归档为1个.a 静态库文件。
创建一个静态库:
将原文件编译为.o文件
使用.o文件创建静态库:
命令ar表示归档
rcs:r表示如果.a文件存在就更新它,c表示存档时不显示反馈信息,s表示告诉ar在.a文件开头创建索引。
libhfsec.a:这是我们要创建的静态库文件,注意一定要以libxxx.a命名。
encrypt.o checksum.o:这是我们要归档的.o文件。
使用静态库文件
testrun.c:是我们的main函数所在的源文件
-L/Users/AlexTuan/HFC/lib/stlib:-L表示,指定静态库文件所在的目录,目录可以用绝对路径和相对路径,不指定则从系统默认的静态库路径查找。
-lhfsec:指定我们要使用的静态库libhfsec.a,这就是我们要以libxxx.a格式命名的原因,可以用-lxxx的方式来指定我们的静态库。
使用make自动构建
要点
一个库有多个目标文件
使用ar命令创建静态库
静态库命名要以libxxx.a的格式,调用时直接-lxxx
代码
lib sample
Head First C 学习日志 第八章 静态库与动态库
静态库:静态库是1个或者一组目标文件.o的归档,在链接阶段使用,生成一个可执行文件。
静态库引入的原因是,当你的程序由多个源文件构成,而你想共享.o文件,当然你可以将所有的.o都共享,但是这样实在不方便,于是我们就将1个活多个.o文件,归档为1个.a 静态库文件。
创建一个静态库:
将原文件编译为.o文件
gcc yourcode.c -c
使用.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文件。
使用静态库文件
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的方式来指定我们的静态库。
使用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
要点
一个库有多个目标文件
使用ar命令创建静态库
静态库命名要以libxxx.a的格式,调用时直接-lxxx
代码
lib sample
相关文章推荐
- Linux C函数参考手册(PDF版)
- C# partial关键字说明
- Lua教程(十七):C API简介
- 简单谈谈lua和c的交互
- C#中的委托数据类型简介
- C#编写的艺术字类实例代码
- C#实现打造气泡屏幕保护效果
- 举例讲解C#编程中委托的实例化使用
- 使用C#代码获取存储过程返回值
- C/C++数据对齐详细解析
- 利用C语言来求最大连续子序列乘积的方法
- 字符串的组合算法问题的C语言实现攻略
- C 语言基础教程(我的C之旅开始了)[三]
- 学习C和C++的9点经验总结
- C++中的extern “C”用法详解
- C 语言基础教程(我的C之旅开始了)[七]
- 最大子矩阵问题实例解析
- C字符串操作函数实现方法小结
- C语言中static的作用及C语言中使用静态函数有何好处