Linux下创建、查看、提取和修改静态库(*.a)
来源:互联网 发布:大众软件停刊了吗 编辑:程序博客网 时间:2024/05/14 16:35
先说明一点,静态库文件是由多个目标文件打包而成的,在windows下静态库文件的后缀是.lib,而在linux下静态库文件的后缀是.a(a是archive的缩写,也就是文档文件)。
废话少说,下面直接进入主题。
1.创建两个c文件:addition.c 和 multiplication.c
addition.c
1 //addition.c2 int addition (int a ,int b)3 {4 int result;5 result=a+b;6 return result;7 }
multiplication.c
1 //multiplication.c2 int multiplication3 {4 int result;5 result=a*b;6 return result;7 }
2.编译C文件得到.o目标文件
1 $ gcc -c addition.c2 $ gcc -c multiplication.c
其中选项 -c 是让gcc只把源码编译成.o文件。
接着在当前文件夹中就会发现多处了两个.o文件
1 $ ls2 addition.c multiplication.c addition.o multiplication.o
3. 用ar命令来创建静态库文件
1 $ ar cr libarith.a addition.o multiplication.o
其中cr就是create的意思,这样就创建了一个libarith.a的静态库文件。
4.写一个c程序来调用libarith.a库
在使用库文件之前要先建立一个头文件 header.h,它包含了库文件中实现了函数的声明。
1 //header.h2 #include<stdio.h>3 int addition(int a,int b);4 int multiplication(int a,int b);
然后创建一个c程序example.c来调用函数
1 // example.c 2 #include "header.h" 3 int main() 4 { 5 int result; 6 result=addition(1,2); 7 printf("addition result is :%d\n",result); 8 result=multiplition(3,4); 9 printf("multiplication result is:%d\n",result);10 return 0;11 }
编译example.c
1 $ gcc example.c libarith.a -o example
选项 -o 后面的参数是指定编译器生成的可执行文件名,如果没有加 -o的话默认生成的可执行文件名是 a.out
运行可以行文件example
1 $./example2 addtion result is:33 multiplication result is:12
5.查看库文件中的目标文件
1 $ ar t libarith.a2 addition.o3 multiplition.o
如果想查看库文件中包含了哪些函数可以用 nm libarith.a 查看,如果要查看可执行文件需要调用哪些库可以用 lld example 来查看。
6.从库文件中提取目标文件
1 $ mkdir file2 $ cp libarith.a file/3 $ cd file4 $ ar x libarith.a5 $ ls6 addition.o7 multiplition.o
7.添加一个目标文件到库文件中
假设你已经有一个目标文件subtraction.o
1 $ ar r libarith.a subtraction.o2 $ ar t libarith.a3 addition.o4 multiplication.o5 subtraction.o
如果库文件中已经存在了subtraction.o文件,则会用新的来覆盖原来旧的。
8.删除库文件中指定的目标文件
1 $ ar d libarith.a addition.o2 $ ar t libarith.a3 multiplication.o4 subtraction.o
0 0
- Linux下创建、查看、提取和修改静态库(*.a)
- Linux下创建、查看、提取和修改静态库(*.a)
- Linux 下查看静态库.a的内部信息
- linux下查看静态库
- linux下查看动态库和静态库
- linux下查看动态库和静态库
- linux下查看动态库和静态库及其可执行文件
- Linux下查看静态和动态链接库的方法
- [转载] linux下创建和使用静态和动态库
- Linux下创建和使用静态和动态库
- LINUX下查看和修改时间
- linux下查看和修改文件时间
- Linux下动态库(.so)和静态库(.a)
- Linux下动态库(.so)和静态库(.a)
- Linux下动态库(.so)和静态库(.a)
- Linux下动态库(.so)和静态库(.a)
- Linux下动态库(.so)和静态库(.a)
- Linux环境下创建静态库和动态库
- 自己动手讲述ORACLE异机还原冷备份数据库
- thinikPHP的学习之路(一)
- UVA 1329 Corporative Network(并查集)
- 发现代码
- UITableView的重用池优化
- Linux下创建、查看、提取和修改静态库(*.a)
- Valid Parentheses(java实现)
- 关于python的事件编程
- JavaWeb初级学习 之 HTML
- asp 跳转到外链url,二级跳转到站外链接的代码
- 年鉴网
- 深入C++的new
- Android设置圆形组件以及在组件中设置图标或文字的2中方法
- Tomcat的安装与配置