欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Linux學習筆記7——linux中的靜態(tài)庫和動態(tài)庫

系統(tǒng) 2461 0

一、靜態(tài)庫的編譯

  靜態(tài)庫的編譯過程如下:

  1、編譯成目標文件

    這里有一個可選項-static,調(diào)用格式:gcc -c -static 代碼文件名.c

  2、歸檔成靜態(tài)庫

    A、歸檔的工具是ar工具,使用ar -r可以將文件歸檔成靜態(tài)庫,調(diào)用格式:ar -r 靜態(tài)庫文件 被歸檔的文件

      例如:我們這有兩個C文件,分別為test1.c和test2.c

        首先我們將它編譯成目標文件:gcc -c -static test1.c

                      gcc -c -static test2.c

        此時會產(chǎn)生兩個文件,分別為test1.o和test2.o

        然后我們將它們歸檔:ar -r libdemo1.a test1.o test2.o,此時的靜態(tài)庫文件就是demo1.a。注意demo1是庫名,前面加上lib是命名規(guī)范。

    B、使用nm工具可以查看已有函數(shù)符號表,使用格式為:nm 靜態(tài)庫或者動態(tài)庫或者目標文件或者執(zhí)行文件

?

  3、使用靜態(tài)庫

    使用格式:gcc 代碼文件名.c ??l靜態(tài)庫名 -L庫所在目錄

    例如:這里有一個main.c文件和上面的libdemo1.a靜態(tài)庫,現(xiàn)在我們想編譯它,則:

      gcc main.c -omain -ldemo1 -L.

  4、靜態(tài)庫的規(guī)范和約定

    庫命名規(guī)則:lib庫名.a          ? //此處是指在lib后面直接加上庫名,如上例中的libdemo1.a

    庫使用規(guī)則:-l庫名            //此處是指在-l后面直接加上庫名

          -L庫所在目錄        ? //此處是指在-L后面直接加上庫所在目錄,如在當前目錄,就是-L.

?

  5、采用庫的方式管理代碼優(yōu)點:容易組織代碼、復用、保護代碼版權(quán)

  6、靜態(tài)庫的靜態(tài)的含義:編譯好的程序運行的時候不依賴庫,庫作為程序的一部分編譯連接。

  7、靜態(tài)庫本質(zhì):就是目標文件集合(歸檔)

?

二、動態(tài)庫的編譯(Linux中稱為共享庫)

  1、動態(tài)庫和靜態(tài)庫的區(qū)別

    A、動態(tài)庫是可以執(zhí)行,靜態(tài)庫不能執(zhí)行。

    B、動態(tài)庫不會成為程序的一部分,而 靜態(tài)庫在程序的鏈接階段被復制到了程序中

  2、動態(tài)庫的編譯

    使用-c -fpic,其中-fpic可選

  3、動態(tài)庫的連接

    使用-shared

    例如:有兩個C文件,分別為test3.c,test4.c

      分別對他們進行編譯:gcc -c -fpic test3.c

                gcc -c -fpic test4.c

      產(chǎn)生test3.o和test4.o,然后對他們連接:gcc -shared -olibdemo2.so test3.o test4.o

  4、使用動態(tài)庫

    使用格式:gcc 代碼?? -l庫名 -L動態(tài)庫所在路徑

    例如:有一個代碼文件main2.c,要使用上面產(chǎn)生的動態(tài)庫demo2,則:

        gcc main2.c -ldemo2 -L. -omain

  5、動態(tài)庫的命名規(guī)則

    lib庫名.so

  6、動態(tài)庫的加載

    A.找到動態(tài)庫
????  ???B.加載動態(tài)庫到內(nèi)存
?   ?????C.映射到用戶的內(nèi)存空間

  7、系統(tǒng)對動態(tài)庫查找規(guī)則

   ??A、在/lib中查找
   ?????B、在/usr/lib中查找
   ?????C、到環(huán)境變量LD_LIBRARY_PATH指定的路徑中查找

  8、動態(tài)庫的使用工具

    ldd? 察看程序需要調(diào)用的動態(tài)庫,當然,ldd只能查看可執(zhí)行文件

    readelf -h 查看執(zhí)行程序頭.

Linux學習筆記7——linux中的靜態(tài)庫和動態(tài)庫


更多文章、技術(shù)交流、商務合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产福利资源在线 | 国产在线观看www鲁啊鲁免费 | 欧美日韩国产精品 | 免费精品久久久久久中文字幕 | 丁香婷婷网| 日本综合欧美一区二区三区 | 日韩中文欧美 | 日韩a| 国产午夜精品理论片免费观看 | 天天操综合 | 日本一区二区不卡 | 艳妇荡乳豪妇荡淫 | 色聚网久久综合 | 久久国产精品久久久久久久久久 | 久草在线草a免费线看 | 91短视频app下载安装无限看丝瓜山东座 | 性做爰片免费视频毛片中文ILO | 国产欧美精品一区二区三区 | 91中文在线观看 | 成人免费激情视频 | 亚洲欧美日韩另类精品一区二区三区 | 毛片在线视频观看 | 国产午夜精品一区二区三区嫩草 | 一呦二呦三呦国产精品 | 毛片资源 | 天堂中文资源在线8 | 九九久久国产精品大片 | 天天操夜夜操天天操 | 久久久久无码国产精品一区 | av毛片免费看 | 国产精品一级香蕉一区 | 欧美 亚洲 另类 激情 另类 | 亚洲综合色婷婷久久 | 高清午夜线观看免费 | 五月天婷婷在线视频国产在线 | 欧美日韩在线一区二区 | 亚洲欧美第一视频 | 三片在线观看 | 国产一区二区三区不卡在线观看 | 成人精品一区二区三区 | 亚洲精品乱码久久久久久 |