日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux ar 命令详解

發布時間:2024/10/14 linux 86 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux ar 命令详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、作用

對靜態庫進行操作。

二、靜態庫本質是什么

都知道靜態庫是一些功能代碼的集合,連接階段和主程序連接,可以將靜態庫中的代碼融合到主程序中。

那么靜態庫到底是什么呢?實際上,靜態庫就是一堆 .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 命令详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。