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

歡迎訪問 生活随笔!

生活随笔

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

linux

linux下的动态链接库和静态链接库到底是个什么鬼?(一)静态链接库的编译与使用...

發(fā)布時間:2025/3/21 linux 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux下的动态链接库和静态链接库到底是个什么鬼?(一)静态链接库的编译与使用... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

? ? 知識不等于技術,這句話真的是越工作的時間長越深有體會,學習到的知識只有不斷的實踐,才成真正在自已的心里扎下根,成為自身的一部分,所以無論如何,我希望我的博客可以一直寫下去,慢慢的沉淀,終會有回報,無聊的時候想想,的確,寫代碼也是一種自娛自樂!

? ? 前幾天在做項目時出了一個問題,大體就是:makefile里在編譯可執(zhí)行文件testappd的時候在有用-l去引用一個libtest.so,能編譯通過,但是在加載運行的時候系統(tǒng)提示找不到這個lib而導致進程啟動失敗。后來知道在產品版本編譯打包的時候這個lib并未被打包進去,這個問題后來解決了。但是出于好奇,我想搞清楚動態(tài)庫和靜態(tài)庫的概念,以及之前做過另一個項目時以dlopen方式去引用動態(tài)庫和makefile 去引用動態(tài)庫這幾種方式的不同。查找了網(wǎng)上的一些資料,看明白了,還需手動驗證一下才放心。

? ? 首先說說靜態(tài)鏈接庫,說實話,有時候真心感覺計算機這些相關的各種高大上的詞匯都是紙老虎,看上去高深的不行,其實當你捅開那層紙,就那么回事兒。

? ? ?所謂靜態(tài)鏈接庫,說白了就是在你把寫好的代碼編譯的時候,就把你引用的庫一起給編進去了,從此后你編出來的執(zhí)行程序跟外面都不再有任何關系,即使這個庫更新了,你也搭不上邊兒,其次,如果系統(tǒng)中許多類似的程序都需要用到這個庫,那么各自在編譯的時候都需要把這個庫給編進去,浪費存儲空間(加載到內存里應該也是浪費內存空間的)。linux系統(tǒng)中靜態(tài)庫的名字一般叫

xxx.a, 所以如果你看到一個以 .a結束的文件那么它多半就是一個靜態(tài)鏈接庫文件。

? ? 廢話少說,我們直接上干貨,看看靜態(tài)庫是如何被編譯出來以及如何被使用的

? ? 首先我們寫了一個sum.c,如下,很簡單,里面只有一個Sum函數(shù),把兩個數(shù)相加的和返回

1 int Sum(int Number1, int Number2) 2 { 3 return Number1 + Number2; 4 }

當然還要寫一個聲明它的sum.h

int Sum(int Number1, int Number2);

最后來一個調用這個sum函數(shù)的主函數(shù), 打印返回的結果

1 #include<stdio.h> 2 #include<sum.h> 3 4 void main() 5 { 6 int Num1 = 1; 7 int Num2 = 2; 8 int iRet = 0; 9 10 iRet = Sum(Num1, Num2); 11 printf("Num1 + Num2 = %d.", iRet); 12 return; 13 }

接下來我們編譯靜態(tài)庫,我的筆記本是mac os環(huán)境,打開終端后用vim寫代碼, gcc等相關工具直接就能用,版本沒注意,反正能用就行

1 192:zch kane$ ls 2 main.c sum.c sum.h 3 192:zch kane$ gcc -c sum.c 4 192:zch kane$ ls 5 main.c sum.c sum.h sum.o 6 192:zch kane$ 7 192:zch kane$ 8 192:zch kane$ ar cr libsum.a sum.o 9 192:zch kane$ ls 10 libsum.a main.c sum.c sum.h sum.o 11 192:zch kane$

如上,我們用ar這個工具來編譯靜態(tài)庫,cr標志告訴ar將object文件封裝

然后我們編譯主程序并運行:

192:zch kane$ gcc -o sumappd main.c -L . -lsum 192:zch kane$ ls libsum.a main.o sum.h sumappd main.c sum.c sum.o 192:zch kane$ ./sumappd Num1 + Num2 = 3

“-L .”指明了當前l(fā)ib所在的路徑是在本目錄,-l表示鏈接libsum.a這個lib庫,很好理解。

?

轉載于:https://www.cnblogs.com/zhengchunhao/p/4881205.html

總結

以上是生活随笔為你收集整理的linux下的动态链接库和静态链接库到底是个什么鬼?(一)静态链接库的编译与使用...的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 久草视频免费在线 | 五月开心播播网 | 大奶在线播放 | 国产精品视频无码 | 麻豆欧美 | 欧美人与性囗牲恔配 | 高清av一区二区三区 | 亚洲free性xxxx护士白浆 | 一区二区久久精品66国产精品 | mm1313亚洲精品 | 四虎少妇做爰免费视频网站四 | 狠狠干网| 亚洲一区二区三区不卡视频 | 亚洲青草视频 | 欧美成人三级在线 | 天天综合网入口 | 国产精品久久久999 www日本高清视频 | 91欧美在线 | 蜜臀av色欲a片无码精品一区 | 女儿的朋友4在线观看 | 久久久精品视频在线 | 申鹤乳液狂飙 | 手机免费在线观看av | 久久精品国产亚洲AV无码男同 | 日韩精品一区二区免费视频 | 麻豆av在线| 日本三级大全 | 瑟瑟视频网站 | 丰满雪白极品少妇流白浆 | 成人免费版 | 亚洲精品一级片 | 波多av| 欧美亚洲激情 | 国产美女精品视频 | 成人激情小视频 | 亚洲yy | 大地资源影视在线播放观看高清视频 | 国产黄色精品 | 日韩电影在线观看一区二区 | 综合色婷婷一区二区亚洲欧美国产 | 特级丰满少妇一级aaa爱毛片 | 精品久久久中文字幕人妻 | 五月婷婷激情综合 | 精品国自产拍在线观看 | 欧美性生交xxxxx久久久缅北 | 性色av一区二区三区免费 | 电影一区二区三区 | 黄色综合网站 | 精品国产乱码久久久久久婷婷 | 毛片全黄| 日日狠狠久久偷偷四色综合免费 | 男女做爰猛烈刺激 | 1级黄色大片 | 国产精品白嫩白嫩大学美女 | 污污网站在线观看视频 | 美女一区二区三区 | 亚洲av无码乱码在线观看性色 | 女同性做受全过程动图 | 毛片黄片免费看 | 免费黄色片视频 | 手机在线一区二区 | 亚洲精品国产精品乱码不99按摩 | 蜜臀久久精品 | 国产女人在线观看 | 调教撅屁股啪调教打臀缝av | 国产欧美一区二区三区国产幕精品 | 成人开心网 | 玖草视频在线观看 | 国产精品一区二区性色av | 粉嫩一区二区三区 | 天堂av一区二区 | a级在线免费观看 | 不卡的av在线免费观看 | 两根大肉大捧一进一出好爽视频 | 国产3页 | 激情欧美一区 | 一级少妇精品久久久久久久 | 日韩免费观看一区二区 | 可以直接在线观看的av | 日本黄大片在线观看 | 日韩精品久久久久久久的张开腿让 | 免费看av网 | 精品人妻一区二区三区日产 | www.成人免费 | 免费高清av| 一区二区成人精品 | 国产视频在线一区 | 亚洲精品1| 四虎在线影视 | 国产成人自拍视频在线 | av女优天堂在线观看 | 亚洲综合三区 | 免费a在线观看 | 美女主播福利视频 | 黄色的网站免费看 | 91福利免费 | 国产特级黄色片 | 国语对白做受69 | 日韩精品一区二区三区不卡在线 |