一、作用

对静态库进行操作。

二、静态库本质是什么

都知道静态库是一些功能代码的集合,连接阶段和主程序连接,可以将静态库中的代码融合到主程序中。

那么静态库到底是什么呢?实际上,静态库就是一堆 .o 文件的集合,准确说法如下:

静态库是通过编译器编译源代码文件并将生成的目标文件打包生成后的归档文件。

说白了静态库就是一个被打包工具打完的包,里面放的就是 .o 文件。

这个打包工具就是 ar,全称:archiver 。

三、栗子

test.h

#include <stdio.h>void print();

test.c

#include "test.h"void print()
{printf("hello world!\n");
}

main.c

#include "test.h"int main()
{print();return 0;
}

gcc -c test.c
ar rcs libtest.a test.o
gcc -o main main.c -L. -ltest

./main

hello world!

这里我们成功使用了 ar 工具制作了一个静态库:libtest.a 。

四、命令解析

1、参数 r :在库中插入模块(替换)。

当插入的模块名已经在库中存在,则替换同名的模块。如果若干模块中有一个模块在库中不存在,ar 显示一个错误消息,并不替换其他同名模块。默认的情况下,新的成员增加在库的结尾处,可以使用其他任选项来改变增加的位置。 

2、参数 c :创建一个库。

不管库是否存在,都将创建。 

3、参数 s :创建目标文件索引,这在创建较大的库时能加快时间。

(补充:如果不需要创建索引,可改成大写 S 参数;如果 .a 文件缺少索引,可以使用 ranlib 命令添加)

4、参数 t :ar t libxxx.a  

显示库文件中有哪些目标文件,只显示名称。  

5、参数 v :ar tv libxxx.a  

显示库文件中有哪些目标文件,显示文件名、时间、大小等详细信息。  

6、格式:nm -s libxxx.a  

显示库文件中的索引表。  

7、格式:ranlib libxxx.a  

为库文件创建索引表。 

(SAW:Game Over!)

linux ar 命令详解相关推荐

  1. linux命令大全 美pdf,Linux编程命令详解_10331298_(美)Richard..pdf-得力文库

    Linux编程命令详解_10331298_(美)Richard....pdf General Ination 书名Linux编程命令详解 作者(美)Richard Petersen著:梁普选,刘玉芬等 ...

  2. Linux常用命令详解(最全)

    Linux命令目录 Linux命令集合 系统信息 关机 (系统的关机.重启以及登出 ) 文件和目录 文件搜索 挂载一个文件系统 磁盘空间 用户和群组 文件的权限 - 使用 "+" ...

  3. linux mingetty 命令详解

    linux mingetty 命令详解 功能说明:精简版的getty. 语 法:mingetty [--long-hostname][--noclear][tty] 补充说明:mingetty适用于本 ...

  4. linux zip 命令详解

    功能说明:压缩文件.  语 法:zip [-AcdDfFghjJKlLmoqrSTuvVwXyz$][-b <工作目录>][-ll][-n <字尾字符串>][-t <日期 ...

  5. linux zipinfo 命令详解

    linux zipinfo 命令详解 功能说明:列出压缩文件信息. 语 法:zipinfo [-12hlmMstTvz][压缩文件][文件...][-x <范本样式>] 补充说明:执行zi ...

  6. Linux chkconfig命令详解

    Linux chkconfig命令详解 (2011-03-07 15:49:04) 转载 标签: linux shell chkconfig 杂谈 分类: 工作*Linux chkconfig:    ...

  7. linux uname 命令详解

    linux uname 命令详解 功能说明:显示系统信息. 语 法:uname [-amnrsv][--help][--version] 补充说明:uname可显示电脑以及操作系统的相关信息. 参 数 ...

  8. linux mread 命令详解

    linux mread 命令详解 功能说明:将MS-DOS文件复制到Linux/Unix的目录中. 语 法:mread [MS-DOS文件...][Linux文件或目录] 补充说明:mread为mto ...

  9. linux sort 命令详解

    linux sort 命令详解 sort命令的功能是对文件中的各行进行排序.sort命令有许多非常实用的选项,这些选项最初是用来对数据库格式的文件内容进行各种排序操作的.实际上,sort命令可以被认为 ...

最新文章

  1. 量子计算技术发展迅猛,商业潜力初现!如何把握量子计算时代的新机遇?
  2. hibernate延迟加载lazy的原理,以及为什么session关闭会报错
  3. Toon Shader
  4. 人脸质量评估网络推荐
  5. session登录练习使用解决null显示问题
  6. eoj程序设计基础(基于 C 语言)1067
  7. 与Maven 3,Failsafe和Cargo插件的集成测试
  8. 如何给女朋友解释什么是撞库、脱库和洗库?
  9. fabricjs上手指南
  10. python报表自动化系列 - 拆分一个字符串中的数字和字母
  11. 手动写一个上传图片的组件,不适用插件,包括限制图片大小,格式
  12. 大数据可视化工具在中国的发展历程
  13. 论能逼疯一个人的nvidia显卡驱动在ubuntu16.04上的安装
  14. spring boot layui table.render 加载不了cols
  15. 用python的turtle画分形树
  16. form表单标签的简单使用
  17. 【论文发表】认识SCI、EI、ISTP、IEEE等和算法论文
  18. 一个程序员的跨洋找工作分享
  19. 用谷歌云搭建属于你的深度学习工作站
  20. Shell中的基本命令

热门文章

  1. 我觉得要技术者上升到整体去考虑会好点
  2. 整理就知识,你会在里面发现新的东西
  3. linux - svn命令操作使用随笔svn import
  4. Win7下VS2008升级补丁
  5. 再谈 查询长期未登录AD的用户
  6. 【收藏】SonarQube-插件-离线安装PMD+阿里P3C
  7. python pip install virtualenv时注意事项:需使用root权限 否则报virtualenv命令找不到
  8. linux curl发送POST请求
  9. HBase基本操作命令整理
  10. linux deepin/ubuntu 搭nginx文件服务器配置