国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

C++基礎(chǔ)語(yǔ)法梳理:鏈接裝載庫(kù)丨Linux 的共享庫(kù)

2021-10-30 19:09 作者:C語(yǔ)言編程__Plus  | 我要投稿

Linux 的共享庫(kù)(Shared Library)

Linux 下的共享庫(kù)就是普通的 ELF 共享對(duì)象。

共享庫(kù)版本更新應(yīng)該保證二進(jìn)制接口 ABI(Application Binary Interface)的兼容

命名

libname.so.x.y.z

x:主版本號(hào),不同主版本號(hào)的庫(kù)之間不兼容,需要重新編譯

y:次版本號(hào),高版本號(hào)向后兼容低版本號(hào)

z:發(fā)布版本號(hào),不對(duì)接口進(jìn)行更改,完全兼容

路徑

大部分包括 Linux 在內(nèi)的開(kāi)源系統(tǒng)遵循 FHS(File Hierarchy Standard)的標(biāo)準(zhǔn),這標(biāo)準(zhǔn)規(guī)定了系統(tǒng)文件如何存放,包括各個(gè)目錄結(jié)構(gòu)、組織和作用。

/lib:存放系統(tǒng)最關(guān)鍵和最基礎(chǔ)的共享庫(kù),如動(dòng)態(tài)鏈接器、C 語(yǔ)言運(yùn)行庫(kù)、數(shù)學(xué)庫(kù)等

/usr/lib:存放非系統(tǒng)運(yùn)行時(shí)所需要的關(guān)鍵性的庫(kù),主要是開(kāi)發(fā)庫(kù)

/usr/local/lib:存放跟操作系統(tǒng)本身并不十分相關(guān)的庫(kù),主要是一些第三方應(yīng)用程序的庫(kù)

動(dòng)態(tài)鏈接器會(huì)在?/lib、/usr/lib?和由?/etc/ld.so.conf?配置文件指定的,目錄中查找共享庫(kù)

環(huán)境變量

LD_LIBRARY_PATH:臨時(shí)改變某個(gè)應(yīng)用程序的共享庫(kù)查找路徑,而不會(huì)影響其他應(yīng)用程序

LD_PRELOAD:指定預(yù)先裝載的一些共享庫(kù)甚至是目標(biāo)文件

LD_DEBUG:打開(kāi)動(dòng)態(tài)鏈接器的調(diào)試功能

so 共享庫(kù)的編寫(xiě)

使用 CLion 編寫(xiě)共享庫(kù)

創(chuàng)建一個(gè)名為 MySharedLib 的共享庫(kù)

CMakeLists.txt

library.h

library.cpp

so 共享庫(kù)的使用(被可執(zhí)行項(xiàng)目調(diào)用)

使用 CLion 調(diào)用共享庫(kù)

創(chuàng)建一個(gè)名為 TestSharedLib 的可執(zhí)行項(xiàng)目

CMakeLists.txt

main.cpp

執(zhí)行結(jié)果

今天的分享就到這里了,大家要好好學(xué)C++喲~

寫(xiě)在最后:對(duì)于準(zhǔn)備學(xué)習(xí)C/C++編程的小伙伴,如果你想更好的提升你的編程核心能力(內(nèi)功)不妨從現(xiàn)在開(kāi)始!

微信公眾號(hào):C語(yǔ)言編程學(xué)習(xí)基地

C語(yǔ)言零基礎(chǔ)入門(mén)教程(83集全)

整理分享(多年學(xué)習(xí)的源碼、項(xiàng)目實(shí)戰(zhàn)視頻、項(xiàng)目筆記,基礎(chǔ)入門(mén)教程)

歡迎轉(zhuǎn)行和學(xué)習(xí)編程的伙伴,利用更多的資料學(xué)習(xí)成長(zhǎng)比自己琢磨更快哦!



C++基礎(chǔ)語(yǔ)法梳理:鏈接裝載庫(kù)丨Linux 的共享庫(kù)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
东明县| 安龙县| 神农架林区| 汾西县| 当阳市| 虞城县| 莫力| 兰州市| 泰和县| 东至县| 黔西县| 东乌珠穆沁旗| 四川省| 星座| 大丰市| 江陵县| 赣榆县| 濮阳市| 自治县| 祥云县| 和硕县| 新营市| 卢湾区| 成武县| 正镶白旗| 邳州市| 福鼎市| 宁明县| 丹寨县| 墨竹工卡县| 邵阳县| 丰顺县| 祁东县| 鹿邑县| 将乐县| 砀山县| 延寿县| 收藏| 嘉峪关市| 洛扎县| 东源县|