news 2026/4/18 11:59:40

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/4/18 8:28:34

亲测GPEN图像修复效果惊艳,人脸增强真实案例分享

亲测GPEN图像修复效果惊艳&#xff0c;人脸增强真实案例分享 1. 这不是“美颜滤镜”&#xff0c;是真正的人脸结构重建 你有没有试过用手机修图软件把一张模糊的老照片变清晰&#xff1f;结果往往是&#xff1a;皮肤变得塑料感十足&#xff0c;五官边缘发虚&#xff0c;眼睛像…

作者头像 李华
网站建设 2026/4/18 10:48:37

告别重复计算!SGLang-v0.5.6让大模型跑得更快更省

告别重复计算&#xff01;SGLang-v0.5.6让大模型跑得更快更省 在大模型推理落地的深水区&#xff0c;一个被反复提及却常被低估的痛点正悄然拖慢AI应用的脚步&#xff1a;每一次新请求&#xff0c;都在默默重算前几轮对话中早已算过的Token。这不是理论瓶颈&#xff0c;而是真…

作者头像 李华
网站建设 2026/4/18 6:58:25

YOLOv10噪声注入实验:高斯噪声对精度影响分析

YOLOv10噪声注入实验&#xff1a;高斯噪声对精度影响分析 在实际工业部署中&#xff0c;目标检测模型常面临图像质量退化问题——监控摄像头低光照下的噪点、无人机航拍时的传感器干扰、老旧安防设备输出的模拟信号失真&#xff0c;都会在输入图像中引入不可忽视的高斯噪声。这…

作者头像 李华
网站建设 2026/4/18 10:50:07

cv_resnet18_ocr-detection安装教程:Docker镜像快速部署

cv_resnet18_ocr-detection安装教程&#xff1a;Docker镜像快速部署 1. 为什么选择这个OCR检测镜像 你是不是也遇到过这些情况&#xff1a; 想快速试一个OCR文字检测模型&#xff0c;结果卡在环境配置上一整天&#xff1f;安装PyTorch、OpenCV、onnxruntime各种版本冲突&…

作者头像 李华
网站建设 2026/4/18 10:46:03

hbuilderx制作网页中响应式栅格系统深度剖析

以下是对您提供的博文《HBuilderX制作网页中响应式栅格系统深度剖析》的 全面润色与专业重构版本 。本次优化严格遵循您的核心要求&#xff1a; ✅ 彻底去除AI腔、模板化表达&#xff08;如“本文将从……几个方面阐述”&#xff09;、刻板小标题结构&#xff1b; ✅ 以真实…

作者头像 李华