静态库制作
2016-12-05 00:33
190 查看
静态库
静态库................................................................................................................................. 1
1. 命名格式...................................................................................................................... 2
1.1. lib开头................................................................................................................. 2
1.2. 静态库名.............................................................................................................. 2
1.3. .a结尾.................................................................................................................. 2
2. 描述.............................................................................................................................. 2
2.1. 优点...................................................................................................................... 2
2.1.1. 寻址方便,速度快....................................................................................... 2
2.1.2. 库被打包到可执行程序中,直接发布可执行程序即可使用................... 2
2.2. 缺点...................................................................................................................... 2
2.2.1. 静态库的代码在编译过程中已经被载入可执行程序,因此体积较大。 2
2.2.2. 如果静态函数库改变了,那么你的程序必须重新编译。....................... 2
2.3. 使用场合.............................................................................................................. 2
2.3.1. 在核心程序上使用,保证速度,可忽视空间........................................... 2
2.3.2. 主流应用于80、90年代,现在很少用..................................................... 2
3. 制作............................................................................................................................. 2
3.1. 得到 *.o............................................................................................................... 2
3.1.1. gcc a.c b.c c.c -c............................................................................................ 2
3.2. 得到静态库 libmytest.a...................................................................................... 2
3.2.1. ar rcs libmytest.a a.o b.o c.o (就是一个打包.o文件的过程)............. 3
3.2.2. 查看库中的符号(函数、全局变量等): nmlibmytest.a..................... 3
3.3. 使用静态库.......................................................................................................... 3
3.3.1. gcc + 源文件 + -L 静态库路径 + -l静态库名 + -I头文件目录 + -o 可执行文件名 gcc main.c -L./-lmytest -I./ -o app.......................................................................................................
3
3.3.2. gcc + 源文件 + -I头文件 + libxxx.a........................................................... 3
3.3.3. 生成的静态库需要跟对应的头文件同时发布........................................... 3
1. 命名格式
1.1. lib开头
1.2. 静态库名
1.3. .a结尾
2. 描述
2.1. 优点
2.1.1. 寻址方便,速度快
2.1.2. 库被打包到可执行程序中,直接发布可执行程序即可使用
2.2. 缺点
2.2.1. 静态库的代码在编译过程中已经被载入可执行程序,因此体积较大。
2.2.2. 如果静态函数库改变了,那么你的程序必须重新编译。
2.3. 使用场合
2.3.1. 在核心程序上使用,保证速度,可忽视空间
2.3.2. 主流应用于80、90年代,现在很少用
3. 制作
3.1. 得到 *.o
3.1.1. gcc a.c b.c c.c -c
3.2. 得到静态库libmytest.a
3.2.1. ar rcs libmytest.a a.o b.o c.o
(就是一个打包.o文件的过程)
ar 工具不包含在gcc中
r --> 将文件插入静态库中
c --> 创建静态库,不管库是否存在
s --> 写入一个目标文件索引到库中,或者更新一个存在的目标文件索引。
3.2.2. 查看库中的符号(函数、全局变量等): nm libmytest.a
3.3. 使用静态库
3.3.1. gcc + 源文件 + -L 静态库路径 + -l静态库名 + -I头文件目录 + -o 可执行文件名
gcc main.c -L./ -lmytest -I./ -o app
-L --> 指定库所在的路径
-l --> 指定库的名字
去掉前缀 lib去掉后缀 .a
只留下中间部分
-I --> 头文件目录位置
3.3.2. gcc + 源文件 + -I头文件 + libxxx.a
3.3.3. 生成的静态库需要跟对应的头文件同时发布
头文件中存放的是函数接口(函数声明)
相关文章推荐
- 【安卓】关于gridView的高度自动填充到父布局
- GCC的使用
- vim编辑器
- redis性能分析与监控方案
- Linux常见问题2
- C缺陷与陷阱
- 1.2_借书方案知多少
- 其他命令
- 关于ssh服务器的使用
- 网上图书商城11--后台登录过滤器
- java高新技术-java5的静态导入与编译器语法设置
- 和各种诡异 Bug 打交道 13 年,我总结了 18 个经验
- 30行jsoup代码搞定新浪微博登录抓取爬虫
- 1.1_百鸡百钱问题
- 3分钟让你明白JSON是什么
- rabbitmq, windows/linux, c/c++/node.js/golang/dotnet
- java调用SQL server存储过程
- laravel与分页
- NS2下AODV协议aodv.cc源码分析
- 在Linux中如何利用backtrace信息解决问题