news 2026/6/15 19:19:12

Linux 命令:ar

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux 命令:ar

一、ar命令核心概念

ar(archive)的核心作用是将多个目标文件(.o文件)打包成一个静态库文件(通常以.a为后缀),程序编译时可以直接链接这个静态库,无需逐个引用目标文件。

  • 静态库:本质是多个目标文件的集合,链接时会被完整复制到最终的可执行文件中。
  • 常见使用场景:封装通用功能(如工具函数),方便项目复用和管理。

资料合集:https://pan.quark.cn/s/6fe3007c3e95https://pan.quark.cn/s/561de99256a5https://pan.quark.cn/s/985f55b13d94https://pan.quark.cn/s/d0fb20abd19a

二、ar命令基本语法

ar[选项][静态库文件名][目标文件1][目标文件2]...

三、常用选项与核心用法

ar命令的选项是其核心,最常用的组合是rcs,下面拆解关键选项和用法:

选项作用
-c创建静态库(若库文件不存在则新建,存在则覆盖)
-r将目标文件插入/替换到静态库中(已有同名文件则替换)
-s为静态库生成索引(加快链接速度,等价于ranlib命令)
-t列出静态库中包含的所有文件
-d从静态库中删除指定文件
-x从静态库中提取指定文件(不指定则提取全部)
1. 创建静态库(最常用)

假设你有两个目标文件func1.ofunc2.o,要打包成libmylib.a

# 核心命令:创建并生成索引,推荐固定用 rcs 组合ar rcs libmylib.a func1.o func2.o
  • 静态库命名规范:通常以lib开头,.a结尾(如libxxx.a),方便编译器识别。
2. 查看静态库内容
# 列出 libmylib.a 中所有文件ar t libmylib.a# 输出示例:# func1.o# func2.o# 更详细信息(含文件权限、大小等):加 -v 选项ar tv libmylib.a
3. 从静态库删除文件
# 从 libmylib.a 中删除 func2.oar d libmylib.a func2.o
4. 提取静态库中的文件
# 提取 libmylib.a 中的 func1.o 到当前目录ar x libmylib.a func1.o# 提取全部文件(不加文件名)ar x libmylib.a

四、完整使用示例(从编译到链接)

  1. 编写源文件math.c(实现加法功能):
// math.cintadd(inta,intb){returna+b;}
  1. 编译为目标文件:
gcc -c math.c -o math.o# -c 只编译不链接,生成 math.o
  1. ar创建静态库:
ar rcs libmath.a math.o
  1. 编写主程序main.c并链接静态库:
// main.c#include<stdio.h>intadd(inta,intb);// 声明库函数intmain(){printf("3 + 5 = %d\n",add(3,5));return0;}
  1. 编译并链接静态库:
# -L. 表示在当前目录找库,-lmath 表示链接 libmath.a(自动省略 lib 和 .a)gcc main.c -o main -L. -lmath
  1. 运行程序:
./main# 输出:3 + 5 = 8

五、注意事项

  1. ar仅处理静态库,动态库(.so)需用gcc -shared生成,不适用ar
  2. 若静态库更新(如替换目标文件),需重新用ar rcs生成(-s确保索引更新)。
  3. 查看静态库的符号表(函数/变量名)可配合nm命令:nm libmath.a

总结

  1. ar核心用途是创建/修改/提取静态库(.a文件),最常用组合是ar rcs 库名.a 目标文件
  2. 静态库命名遵循libxxx.a规范,链接时用-lxxx引用。
  3. ar t查看库内容、ar x提取文件、ar d删除文件是高频辅助用法。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 14:42:53

教育场景实战:用Seaco Paraformer做课堂录音文字化

教育场景实战&#xff1a;用Seaco Paraformer做课堂录音文字化 在教育数字化转型过程中&#xff0c;教师每天要处理大量教学音频——课堂实录、教研讨论、学生答辩、线上讲座……这些声音里藏着最真实的一线教学实践&#xff0c;却常常因为转写成本高而被束之高阁。人工听写1小…

作者头像 李华
网站建设 2026/6/15 10:43:53

v-scale-screen结合Viewport的优化策略:详细讲解

以下是对您提供的技术博文《v-scale-screen 结合 Viewport 的优化策略&#xff1a;技术深度解析与工程实践》的 全面润色与重构版本 。本次优化严格遵循您的全部要求&#xff1a; ✅ 彻底去除AI痕迹 &#xff1a;摒弃模板化表达、空洞术语堆砌&#xff0c;代之以真实开发者…

作者头像 李华
网站建设 2026/6/15 10:36:43

GPEN能否识别戴口罩人脸?遮挡情况修复实验报告

GPEN能否识别戴口罩人脸&#xff1f;遮挡情况修复实验报告 你有没有试过用AI修图工具处理一张戴着口罩的人脸照片&#xff1f;比如想把一张疫情期间拍的会议合影修复得更清晰&#xff0c;或者想让模糊的证件照重焕光彩——但照片里的人全都戴着口罩。这时候&#xff0c;像GPEN…

作者头像 李华
网站建设 2026/6/15 10:43:58

网页打不开怎么办?Seaco Paraformer localhost访问故障排查

网页打不开怎么办&#xff1f;Seaco Paraformer localhost访问故障排查 当你兴冲冲地启动了 Speech Seaco Paraformer ASR 镜像&#xff0c;满怀期待打开浏览器输入 http://localhost:7860&#xff0c;却只看到“无法访问此网站”“连接被拒绝”或“该网页无法正常运作”——别…

作者头像 李华
网站建设 2026/6/15 10:39:01

从下载到运行:GPEN人像修复全流程图文教程

从下载到运行&#xff1a;GPEN人像修复全流程图文教程 你是否遇到过这些情况&#xff1a;一张珍贵的老照片布满划痕和噪点&#xff0c;AI生成的人脸边缘模糊、皮肤失真&#xff0c;或者监控截图中的人物面部像素化严重却无法辨认&#xff1f;传统修图软件需要反复涂抹、调参&a…

作者头像 李华
网站建设 2026/6/15 10:45:05

Unsloth支持哪些模型?Llama/Qwen/Gemma兼容性测试

Unsloth支持哪些模型&#xff1f;Llama/Qwen/Gemma兼容性测试 1. Unsloth 是什么&#xff1a;让大模型训练真正“轻装上阵” 你有没有试过微调一个7B参数的LLM&#xff1f;显存爆满、训练慢得像加载GIF动图、改一行代码就要等十分钟——这些不是错觉&#xff0c;而是很多开发…

作者头像 李华