老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業提供網站建設、域名注冊、服務器等服務

CC++動態庫與靜態庫的制作與使用-創新互聯

靜態庫的用法

靜態庫的文件名 libxxx.a -->對應windows的.lib文件做靜態庫的命令:
C C++ 動態庫與靜態庫的制作與使用

西林網站建設公司創新互聯,西林網站設計制作,有大型網站制作公司豐富經驗。已為西林超過千家提供企業網站建設服務。企業網站搭建\外貿網站制作要多少錢,請找那個售后服務好的西林做網站的公司定做!

使用靜態庫:
C C++ 動態庫與靜態庫的制作與使用

注意:-L的作用是告訴gcc你的libxxx.a放在了哪個目錄里;-l的作用是告訴gcc使用哪個靜態庫。
舉個例子,目錄結果如下:
C C++ 動態庫與靜態庫的制作與使用

head.h
C C++ 動態庫與靜態庫的制作與使用

add.c
C C++ 動態庫與靜態庫的制作與使用

sub.c
C C++ 動態庫與靜態庫的制作與使用

mul.c
C C++ 動態庫與靜態庫的制作與使用

步驟1:在src目錄執行下面的命令,生產.o文件

C C++ 動態庫與靜態庫的制作與使用

執行后,在src目錄下生產了add.o,sub.o,mul.o三個文件

步驟2:在src目錄執行下面的命令,生產libCalc.a文件

C C++ 動態庫與靜態庫的制作與使用

在src目錄執行下面的命令,把libCalc.a移動到上層的lib文件夾

C C++ 動態庫與靜態庫的制作與使用

執行后,在lib文件夾出現了libCalc.a

main.c
C C++ 動態庫與靜態庫的制作與使用

步驟4:在src的上層目錄,執行下面命令生產a.out文件

C C++ 動態庫與靜態庫的制作與使用

  • -I:指定頭文件所在的路徑
  • -L:指定靜態庫文件所在的路徑
  • -l:指定使用哪個靜態庫

最后目錄結構如下:
C C++ 動態庫與靜態庫的制作與使用

動態庫的用法

動態庫的文件名 libxxx.so(對應windows的.dll文件) 編譯時,需要加【-fPIC】選項。它的作用是,編譯出與位置無關的代碼。因為動態庫在加載到下圖的共享庫區的時候,不一定加載到哪個位置,所以加了-fPIC后,就記錄了每個函數相對于這個動態庫頭地址的偏移,加載后動態庫在內存里的頭地址是知道的,又知道了每個函數相對于頭的偏移量,自然而然地就能夠找到每個函數在內存里的位置了。
C C++ 動態庫與靜態庫的制作與使用

做靜態庫的命令(-shared):
C C++ 動態庫與靜態庫的制作與使用

用【ldd】命令查看編譯出來的可執行文件文件
C C++ 動態庫與靜態庫的制作與使用

結果如下:
C C++ 動態庫與靜態庫的制作與使用
發現【libCalc.so => not found】

解決辦法1:

把做好的動態庫libCalc.so拷貝到【/lib】或者【/usr/lib】下,也可以用ln做軟硬連接:把當前目錄下的lib目錄下的libCalc.so鏈接到/lib下
C C++ 動態庫與靜態庫的制作與使用

結果如下:
C C++ 動態庫與靜態庫的制作與使用

發現軟連接是紅色的,也就是不能使用的意思,錯誤在于./lib/libCalc.so這個路徑是不存在的,原因在于上面的命令使用的是相對路徑,改成絕對路徑就OK了,命令如下:
C C++ 動態庫與靜態庫的制作與使用

結果如下:
C C++ 動態庫與靜態庫的制作與使用
發現軟連接是綠色的了,說明庫可以使用了。

再用【ldd】命令查看編譯出來的可執行文件文件 ldd a.out, 結果如下:
C C++ 動態庫與靜態庫的制作與使用

但是這種方法不推薦使用。理由是,放在了系統的動態庫目錄里,容易和別的庫重復,發生沖突。

解決辦法2:告訴系統,給我加一個動態庫的路徑,這個是最好的辦法。

首先編輯/etc/ld.so.conf文件,添加你自己的庫的路徑 然后,執行:【sudo ldconfig】,就OK了。

靜態庫和動態庫的特點:

  • 靜態庫:
    編譯的時候,直接把靜態庫的代碼直接編譯到目標文件
    執行速度快,不需要在執行的時候加載動態庫
    庫文件修改后,必須重新編譯使用庫的代碼

  • 動態庫
    編譯的時候,不把靜態庫的代碼直接編譯到目標文件
    執行速度慢,在執行的時候需要加載動態庫
    庫文件修改后,一般不需要重新編譯使用庫的代碼,只有在庫的接口改變時,才需要重新編譯使用庫的代碼。

另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。


本文名稱:CC++動態庫與靜態庫的制作與使用-創新互聯
文章轉載:http://www.xueling.net.cn/article/dsscid.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 久久久久久伊人 | 一本一本久久A久久精品综合不卡 | 2020无码天天喷水天天爽 | 国产美女被遭高潮免费网站 | 好爽进去了视频在线观看国版 | 三级国产三级在线 | 久久成人免费精品网站 | 亚洲欧洲综合av | 2018成人影院 | 欧美黑人巨大久久久精品一区 | 国产在线视频一区二区三区98 | 国产视频第一页 | 999国产精品视频免费 | 少妇在线视频 | 亚洲欧美日韩国产自偷 | 日日夜夜精品视频免费观看 | 久久亚洲欧洲 | 亚洲AV无码专区亚洲AV紧身裤 | 欧美精彩视频在线观看 | 男人女人真曰批视频播放在线 | 免费看美女毛片 | 国内精自视频品线一区 | 未满十八18勿进黄网站 | 我学生的妈妈在线 | 青娱乐国产精品视频 | 久草高清在线 | 可以免费观看的av | 国产中文av在线 | 99视频精品免费观看 | 国产精品一区二区三区在线观 | 亚洲欧美aⅴ... | 公主荫蒂每天被男人添H | 手机看片日本 | 欧美一级一区二区三区 | 久久久久久精品无码午夜按摩师 | 懂色av一区二区三区四区五区 | 成人av激情 | 91香蕉成人 | 欧美激情做真爱牲交视频 | 亚州av免费 | 国产精品成年人 |