日韩性视频-久久久蜜桃-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文件的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    主站蜘蛛池模板: 永久看看免费大片 | 日本免费www | 国产精品久久久久久久久久久新郎 | 国产精品一区免费观看 | 多啪啪免费视频 | 欧美影院| 国产毛片久久久久 | 免费观看黄网站 | 久艹在线视频 | 亚洲综合一区二区 | 97免费超碰| 丝袜诱惑一区二区 | 深夜成人在线观看 | 天天操天天射天天爽 | 国产精选网站 | 久久久无码一区二区三区 | 欧美成人三级在线播放 | 日韩一区二区三区视频在线 | 亚洲精品日韩综合观看成人91 | 一区二区三区在线 | 男女爱爱动态图 | 少妇丰满尤物大尺度写真 | 韩国视频一区二区三区 | 成人手机视频在线观看 | 久久综合久久鬼色 | 东京热无码av一区二区 | 自拍视频网站 | 国产日批视频在线观看 | 大乳村妇的性需求 | 小sao货水好多真紧h无码视频 | 欧洲美熟女乱又伦 | 国产福利小视频在线 | 武林美妇肉伦娇喘呻吟 | 三级av毛片 | 嫩草影院在线免费观看 | 欧美日本一道 | 男生和女生一起差差差视频 | 成人午夜在线观看 | 久久久久国色av免费观看性色 | 又黄又爽又刺激的视频 | 中文字幕日韩国产 | 福利视频午夜 | 免费成人在线看 | 成人区人妻精品一熟女 | 久久久伦理片 | 亚洲精品社区 | 日韩专区第一页 | 污片在线免费看 | 国产卡一卡二卡三无线乱码新区 | 午夜视频91| 欧洲美一区二区三区亚洲 | 最近中文字幕一区二区 | 夏目彩春娇喘呻吟高潮迭起 | 欧美激情片在线观看 | 99久久精品国产一区二区成人 | 三级黄色小视频 | 国产在线欧美日韩 | 性爱视频在线免费 | 伊人av网| 成人亚洲在线 | 国产三级av在线播放 | 久操福利| 午夜成人免费影院 | 中文字幕在线视频一区二区 | 欧美高清精品一区二区 | 久操国产在线 | 俺也去五月婷婷 | 国产亚洲精品aaaaaaa片 | 永久免费视频网站直接看 | 国产精欧美一区二区三区蓝颜男同 | 一级黄色录像免费观看 | 成人免费看片又大又黄 | 黄色片在哪里看 | 免费a v网站 | 超碰最新网址 | 亚洲久久久| 欧美精品video | 天天玩天天操 | 好大好爽好舒服 | 日韩激情视频在线 | 喷水了…太爽了高h | 在线免费看黄视频 | 91资源在线观看 | 男操女视频网站 | 91九色在线 | 爱看av在线 | 中国少妇色 | 97av超碰| 成人亚洲一区 | jlzzzjlzzz国产免费观看 | 国内一区二区三区 | 亚拍一区 | 污污在线看 | 亚洲精品日韩精品 | 天天干天天爱天天操 | 福利视频网址 | 精品一区二区三区四区视频 | 免费日批视频 | 51成人精品网站 |