Linux ar 命令使用详解

简介

Linux 中的 ar(Archive) 命令用于创建、修改和从存档中提取文件。它通常用于在 C/C++ 开发中创建静态库(.a 文件)。

基础语法

shell 复制代码
ar [options] archive-file file(s)
  • archive-file:要创建/修改的档案的名称

  • file(s):要添加到档案的文件

  • [options]:控制操作

常用选项

  • c:创建一个新的档案(如果不存在)

  • r:替换或添加文件到档案中

  • d:从档案中删除文件

  • t:列出档案的内容

  • x:从档案中提取文件

  • v:详细模式(显示详细信息)

示例用法

创建存档文件
shell 复制代码
ar rcs libexample.a file1.o file2.o
  • r:添加/替换文件

  • c:如果档案不存在则创建该档案

  • s:添加索引以便更快地查找符号

示例:

shell 复制代码
gcc -c file1.c file2.c
ar rcs libexample.a file1.o file2.o

# 从 file1.o 和 file2.o 创建静态库 libexample.a
列出存档内容
shell 复制代码
ar t libexample.a

示例输出:

shell 复制代码
file1.o
file2.o

详细列出:

shell 复制代码
ar tv libexample.a
提取文件
shell 复制代码
ar x libexample.a file1.o

提取所有文件:

shell 复制代码
ar x libexample.a
从存档中删除文件
shell 复制代码
ar d libexample.a file1.o

# 从 libexample.a 中删除 file1.o
更新存档文件
shell 复制代码
ar r libexample.a file1.o
在编译中使用静态库(.a)
shell 复制代码
gcc main.c -L. -lexample -o myprogram
  • -L.:在当前目录中查找库

  • -lexample:与 libexample.a 链接

相关推荐
康康的AI博客1 小时前
工业数据中台:PLC、SCADA、MES的实时协同架构
java·服务器·网络
三不原则2 小时前
故障案例:数据库慢查询导致交易延迟,AIOps 如何自动定位?
运维·数据库
gzxx2007sddx2 小时前
ubuntu挂载访问windows的共享文件夹
linux·运维·ubuntu·挂载·共享
市安2 小时前
基于 LVS+Keepalived+NFS 的高可用 Web 集群构建与验证
运维·服务器·网络·lvs·keepalived·ipvsadm
AC赳赳老秦2 小时前
Dify工作流+DeepSeek:运维自动化闭环(数据采集→报告生成)
android·大数据·运维·数据库·人工智能·golang·deepseek
鹿角片ljp2 小时前
Java网络编程入门:从Socket到多线程服务器
java·服务器·网络
真的想上岸啊2 小时前
4、修改开发板内核启动日志级别
linux
汽车仪器仪表相关领域2 小时前
全程高温伴热,NOx瞬态精准捕捉:MEXA-1170HCLD加热型NOx测定装置项目实战全解
大数据·服务器·网络·人工智能·功能测试·单元测试·可用性测试
Hoxy.R2 小时前
海量数据库安装部署初体验
服务器·网络·数据库
RisunJan2 小时前
Linux命令-kill(向进程发送信号的核心命令)
linux·运维·服务器