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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ar - 创建静态库.a文件

發布時間:2025/3/15 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ar - 创建静态库.a文件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

用途說明

創建靜態庫.a文件。用C/C++開發程序時經常用到,但我很少單獨在命令行中使用ar命令,一般寫在makefile中,有時也會在shell腳 本中用到。關于Linux下的庫文件、靜態庫、動態庫以及怎樣創建和使用等相關知識,參見本文后面的相關資料【3】《關于Linux靜態庫和動態庫的分析》。

?

常用參數

格式:ar rcs? libxxx.a xx1.o xx2.o

參數r:在庫中插入模塊(替換)。當插入的模塊名已經在庫中存在,則替換同名的模塊。如果若干模塊中有一個模塊在庫中不存在,ar顯示一個錯誤消息,并不替換其他同名模塊。默認的情況下,新的成員增加在庫的結尾處,可以使用其他任選項來改變增加的位置。【1】

參數c:創建一個庫。不管庫是否存在,都將創建。

參數s:創建目標文件索引,這在創建較大的庫時能加快時間。(補充:如果不需要創建索引,可改成大寫S參數;如果.a文件缺少索引,可以使用ranlib命令添加)

?

格式:ar t libxxx.a

顯示庫文件中有哪些目標文件,只顯示名稱。

?

格式:ar tv libxxx.a

顯示庫文件中有哪些目標文件,顯示文件名、時間、大小等詳細信息。

?

格式:nm -s libxxx.a

顯示庫文件中的索引表。

?

格式:ranlib libxxx.a

為庫文件創建索引表。

?

使用示例

示例一 在shell腳本中使用

?

Bash代碼 ?
  • OS=`uname?-r`??
  • ar?rcs?libhycu.a.$OS?*.o??
  • OS=`uname -r` ar rcs libhycu.a.$OS *.o?

    ?

    示例二 在makefile中使用

    Makefile代碼 ?
  • $(BIN1):?$(BIN1_OBJS)??
  • ????????ar?rcs?$@?$^??
  • $(BIN1): $(BIN1_OBJS)ar rcs $@ $^

    ?

    ?

    示例三 創建并使用靜態庫

    第一步:編輯源文件,test.h test.c main.c。其中main.c文件中包含main函數,作為程序入口;test.c中包含main函數中需要用到的函數。

    vi test.h test.c main.c

    第二步:將test.c編譯成目標文件。

    gcc -c test.c

    如果test.c無誤,就會得到test.o這個目標文件。

    第三步:由.o文件創建靜態庫。

    ar rcs libtest.a test.o

    第四步:在程序中使用靜態庫。

    gcc -o main main.c -L. -ltest

    因為是靜態編譯,生成的執行文件可以獨立于.a文件運行。

    第五步:執行。

    ./main

    ?

    示例四 創建并使用動態庫

    第一步:編輯源文件,test.h test.c main.c。其中main.c文件中包含main函數,作為程序入口;test.c中包含main函數中需要用到的函數。

    vi test.h test.c main.c

    第二步:將test.c編譯成目標文件。

    gcc -c test.c

    前面兩步與創建靜態庫一致。

    第三步:由.o文件創建動態庫文件。

    gcc -shared -fPIC -o libtest.so test.o

    第四步:在程序中使用動態庫。

    gcc -o main main.c -L. -ltest

    當靜態庫和動態庫同名時, gcc命令將優先使用動態庫。

    第五步:執行。

    LD_LIBRARY_PATH=. ./main

    ?

    示例五 查看靜態庫中的文件

    [root@node56 lib]# ar -t libhycu.a
    base64.c.o
    binbuf.c.o
    cache.c.o
    chunk.c.o
    codec_a.c.o
    ...
    xort.c.o
    [root@node56 lib]#
    [root@node56 lib]# ar -tv libhycu.a
    rw-r--r-- 0/0?? 7220 Jul 29 19:18 2011 base64.c.o
    rw-r--r-- 0/0?? 2752 Jul 29 19:18 2011 binbuf.c.o
    rw-r--r-- 0/0? 19768 Jul 29 19:18 2011 cache.c.o
    ...
    rw-r--r-- 0/0?? 4580 Jul 29 19:18 2011 xort.c.o
    [root@node56 lib]#

    [root@node56 lib]# nm -s libhycu.a | less

    Archive index:
    Base64Enc in base64.c.o
    GetBase64Value in base64.c.o
    Base64Dec in base64.c.o
    encode64 in base64.c.o
    decode64 in base64.c.o
    check64 in base64.c.o
    test64 in base64.c.o
    ...
    chunk_alloc in chunk.c.o
    [root@node56 lib]#

    總結

    以上是生活随笔為你收集整理的ar - 创建静态库.a文件的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    主站蜘蛛池模板: 亚洲爽片| 欧美福利一区 | 欧美情趣视频 | 美女屁股眼视频网站 | 亚洲综合免费观看高清完整版 | 久在线观看视频 | 亚洲专区第一页 | 亚洲国产成人va在线观看天堂 | 51调教丨国产调教视频 | 欧美黄色大全 | av在线资源网 | 污污动态图 | 日韩黄色影院 | 久久影视大全 | 高h捆绑拘束调教小说 | 中文av资源| 国产精品欧美精品 | 久久精品欧美日韩精品 | 欧美激情免费视频 | 91快射| 女人色极品影院 | 一区二区三区人妻 | www.亚洲一区 | 日本偷偷操 | 美女黄色免费网站 | 亚洲无码久久久久 | 欧美粗大猛烈 | 中文字幕乱码一区二区 | 欧美人妻少妇一区二区三区 | 99re只有精品 | av毛片网| 久久综合亚洲色hezyo国产 | jlzzjlzzjlzz亚洲人| 看黄色大片| 好吊操免费视频 | 九九久久国产精品 | 欧美黄色免费在线观看 | 人人爱人人射 | 成人av动漫在线观看 | 日日干日日草 | 日本黄色片在线播放 | 男人午夜网站 | 深夜视频一区二区三区 | 日韩精品人妻无码一本 | 成人黄色免费网址 | 欧美,日韩,国产精品免费观看 | 91久久国产综合久久91精品网站 | 精品久久人人妻人人做人人 | 美女扒开尿口让男人爽 | 国产一区二区三区色淫影院 | 日本成人在线网站 | 亚洲午夜一区二区三区 | 久久国产精品精品国产色婷婷 | 91久久久久久久 | 懂色av成人一区二区三区 | 午夜免费成人 | 一起射导航 | 福利在线视频导航 | 免费网站看av | 欧美成人第一页 | 亚洲麻豆| 国产在线视频导航 | 一本色道无码道dvd在线观看 | 日本黄色大片在线观看 | 亚洲午夜精品在线 | 黄色wwwww | 国产在线三区 | 色网av| 国产精品一区二区视频 | 久草福利在线观看 | 国产盗摄精品一区二区酒店 | 91九色论坛 | 欧美日韩亚洲一区 | 国产网址 | 成人动漫在线观看视频 | 中国黄色三级视频 | 欧美精品手机在线 | 绝顶高潮videos合集 | 97伊人网| 26uuu成人网| 亚洲午夜无码av毛片久久 | 上原亚衣在线观看 | 成人第一页 | 亚洲精品97久久中文字幕 | 少妇又色又紧又爽又刺激视频 | 在线成人福利 | www.成人免费视频 | 原来神马电影免费高清完整版动漫 | yy4138理论片动漫理论片 | 日批免费观看 | 高清av网址 | 男男av网站 | www午夜 | 海角社区id | 免费啪啪小视频 | 欧美极品喷水 | 激情综合激情五月 | 日日日操 | 国内精品福利视频 |