中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

怎么用手機(jī)做網(wǎng)站編輯推廣網(wǎng)站要注意什么

怎么用手機(jī)做網(wǎng)站編輯,推廣網(wǎng)站要注意什么,網(wǎng)站建設(shè)優(yōu)化價(jià)格,wordpress頁(yè)面排序Linux——靜態(tài)庫(kù) 靜態(tài)庫(kù)分析一下 ar指令生成靜態(tài)庫(kù)靜態(tài)庫(kù)的使用第三方庫(kù)優(yōu)化一下 gcc -I(大寫(xiě)的i) -L -l(小寫(xiě)的l),頭文件搜索路徑,庫(kù)文件搜索路徑,連接庫(kù) 今天我們來(lái)學(xué)習(xí)靜態(tài)庫(kù)的基本知識(shí)。 靜態(tài)庫(kù) 在了解靜態(tài)庫(kù)之前,我們首先來(lái)…

Linux——靜態(tài)庫(kù)

  • 靜態(tài)庫(kù)
    • 分析一下
  • ar指令生成靜態(tài)庫(kù)
  • 靜態(tài)庫(kù)的使用
    • 第三方庫(kù)
    • 優(yōu)化一下
  • gcc -I(大寫(xiě)的i) -L -l(小寫(xiě)的l),頭文件搜索路徑,庫(kù)文件搜索路徑,連接庫(kù)

今天我們來(lái)學(xué)習(xí)靜態(tài)庫(kù)的基本知識(shí)。

靜態(tài)庫(kù)

在了解靜態(tài)庫(kù)之前,我們首先來(lái)回憶一下gcc的三個(gè)編譯選項(xiàng):

gcc -E 生成.i 文件 預(yù)處理
gcc -S 生成.s文件 編譯
gcc -c 生成.o 文件 匯編

如果大家有點(diǎn)陌生,大家可以點(diǎn)擊這里復(fù)習(xí)一下:

https://blog.csdn.net/qq_67693066/article/details/132868367

生成.o文件之后,我們就要進(jìn)行連接,讓我們的程序跑起來(lái)。我們今天的主要的部分主要集中在.o文件上。

我們首先模擬一個(gè)簡(jiǎn)單的加減場(chǎng)景,編寫(xiě)一個(gè)程序完成加減,包含完整的頭文件和.c文件:
在這里插入圖片描述
其中我們的Test.c是程序運(yùn)行的入口,Add和Sub的頭文件和.c文件為我們的Test.c服務(wù)。

然后我們編寫(xiě)Makefile:
在這里插入圖片描述

這里注意一下 %.o : %c這個(gè)叫做模式規(guī)則,這段代碼簡(jiǎn)單來(lái)說(shuō)就是將后綴為.c的文件依次生成.o文件,我們將Test.c入口編寫(xiě)好:
在這里插入圖片描述
之后make一下:
在這里插入圖片描述

看到我們已經(jīng)成功生成了Test可執(zhí)行文件,我們運(yùn)行一下來(lái)看看:
在這里插入圖片描述

分析一下

我們回到Makefile:
在這里插入圖片描述
我們知道Test這個(gè)執(zhí)行文件依賴于Add.o,Sub.o 和 Test.c生成,我們?cè)賮?lái)想想,Test.c是我們人為寫(xiě)的程序的入口,意思就是,如果別人寫(xiě)一個(gè)程序的入口,只要他可以拿到Add.o 和Sub.o 就可以運(yùn)行程序。那為什么我不把Add.o和Sub.o打包?如果別人要用這個(gè)程序,我直接把這個(gè)包發(fā)給他就可以用了,這不是很方便嘛。這個(gè)包我們稱為靜態(tài)庫(kù),這個(gè)頭文件,就是庫(kù)的使用說(shuō)明書(shū)。

靜態(tài)庫(kù)(Static Library)是一種包含預(yù)編譯目標(biāo)文件的集合的歸檔文件,它在鏈接時(shí)被整體復(fù)制到可執(zhí)行文件中。靜態(tài)庫(kù)的目的是為了提供代碼重用和模塊化,使得在編譯時(shí)將所有需要的代碼和數(shù)據(jù)都鏈接到最終的可執(zhí)行文件中。
靜態(tài)庫(kù)的文件通常具有 .a(在Unix/Linux系統(tǒng)中)或 .lib(在Windows系統(tǒng)中)的文件擴(kuò)展名。它包含了一組預(yù)編譯的目標(biāo)文件(通常是 .o 文件),這些目標(biāo)文件是通過(guò)編譯源代碼而生成的。
主要優(yōu)點(diǎn)和特點(diǎn)包括:
獨(dú)立性: 靜態(tài)庫(kù)包含所有代碼和數(shù)據(jù),因此它是獨(dú)立于其他庫(kù)的,不依賴于運(yùn)行時(shí)環(huán)境。
鏈接時(shí)靜態(tài)綁定: 靜態(tài)庫(kù)在鏈接時(shí)會(huì)被完全復(fù)制到可執(zhí)行文件中,因此在運(yùn)行時(shí)不需要外部的庫(kù)文件。
性能: 由于在鏈接時(shí)已經(jīng)將代碼和數(shù)據(jù)整合到可執(zhí)行文件中,因此執(zhí)行時(shí)的性能可能會(huì)更好。

ar指令生成靜態(tài)庫(kù)

我們知道了原理之后,我們可以用指令生成靜態(tài)庫(kù),我們?cè)贛akefile中:
在這里插入圖片描述

在這里插入圖片描述

靜態(tài)庫(kù)的使用

我們現(xiàn)在有了靜態(tài)庫(kù),我們現(xiàn)在重新建一個(gè)文件,來(lái)模擬其他程序員拿到庫(kù)的情況。
我們新建一個(gè)Test_2的文件夾,把main函數(shù)寫(xiě)好:
在這里插入圖片描述
如果我們此時(shí)直接編譯:
在這里插入圖片描述
這個(gè)時(shí)候會(huì)報(bào)錯(cuò),說(shuō)沒(méi)有頭文件,此時(shí)我們要把頭文件搬到這個(gè)目錄下,順便把靜態(tài)庫(kù)也搬過(guò)來(lái):
在這里插入圖片描述
這個(gè)時(shí)候我們?cè)賮?lái)編譯:
在這里插入圖片描述
此時(shí)沒(méi)有報(bào)沒(méi)有頭文件的錯(cuò)誤了,但是編譯器還是不知道怎么做,報(bào)了鏈接錯(cuò)誤。但是我們不是已經(jīng)把庫(kù)拷貝過(guò)來(lái)了嗎?按理來(lái)說(shuō)應(yīng)該可以呀?

第三方庫(kù)

其實(shí)我們自己寫(xiě)的庫(kù)為第三方庫(kù),編譯器一般不認(rèn)識(shí),如果我們要運(yùn)行程序,我們需要告訴編譯器到哪里去連接這個(gè)第三方庫(kù):

gcc Test.c -L(后面跟這個(gè)第三方庫(kù)的路徑) -l(第三方庫(kù)的名稱)

這里注意下,這個(gè)第三方庫(kù)的名稱是去掉前綴和后綴的,比如libmymath.a去掉前綴lib去掉后綴.a,這個(gè)庫(kù)的名字應(yīng)該為mymath。

我們來(lái)試試:
在這里插入圖片描述

優(yōu)化一下

剛剛我們執(zhí)行程序時(shí),還要把我們的頭文件一個(gè)一個(gè)搬下來(lái),這個(gè)屬實(shí)不咋方便,我們可以優(yōu)化一下:

我們打開(kāi)Makefile:
在這里插入圖片描述
我們把頭文件也打包一下,我們測(cè)試一下:
在這里插入圖片描述
在這里插入圖片描述

我們有了庫(kù),我們可以壓縮這個(gè)庫(kù):
在這里插入圖片描述
這個(gè)時(shí)候,mymath_lib.tgz就可以拿到網(wǎng)上讓別人下載了。不過(guò),假設(shè)我是其他的程序員,拿到了其他人寫(xiě)的庫(kù),這個(gè)時(shí)候我該如何使用這個(gè)庫(kù)呢?

我們有一個(gè)include目錄,這里是專門(mén)存放頭文件的:
在這里插入圖片描述

還有一個(gè)lib64,是專門(mén)存放動(dòng)靜態(tài)庫(kù)的:
在這里插入圖片描述
我們要做的其實(shí)很簡(jiǎn)單,就是把對(duì)應(yīng)的頭文件和庫(kù)安裝到相應(yīng)的目錄下就可以了。這個(gè)過(guò)程我們稱為安裝開(kāi)發(fā)環(huán)境。

gcc -I(大寫(xiě)的i) -L -l(小寫(xiě)的l),頭文件搜索路徑,庫(kù)文件搜索路徑,連接庫(kù)

我們gcc一般搜索頭文件,會(huì)從全局的/usr/include搜索,然后會(huì)從當(dāng)前路徑尋找。其實(shí)我們可以帶 -I(大寫(xiě)的i),建議編譯器也從這里找頭文件:
在這里插入圖片描述

http://www.risenshineclean.com/news/53423.html

相關(guān)文章:

  • 網(wǎng)站建設(shè)企業(yè)建站要多久優(yōu)質(zhì)的seo快速排名優(yōu)化
  • 南寧網(wǎng)站建設(shè)優(yōu)化外鏈怎么打開(kāi)
  • 江蘇省實(shí)訓(xùn)基地建設(shè)網(wǎng)站鄭州網(wǎng)
  • 微營(yíng)銷(xiāo)方案名片seo什么意思
  • 國(guó)內(nèi)視差網(wǎng)站網(wǎng)站網(wǎng)絡(luò)推廣推廣
  • 騰博會(huì)的網(wǎng)站是什么愛(ài)站網(wǎng)長(zhǎng)尾詞挖掘工具
  • 建網(wǎng)站需要怎樣做屬于seo網(wǎng)站優(yōu)化
  • 泊頭市建設(shè)局網(wǎng)站seo入門(mén)培訓(xùn)課程
  • 國(guó)家稅務(wù)總局網(wǎng)站官網(wǎng)下載網(wǎng)絡(luò)服務(wù)器的作用
  • 求一些做里番的網(wǎng)站站長(zhǎng)工具seo綜合查詢網(wǎng)
  • 企業(yè)內(nèi)部網(wǎng)站模板中國(guó)網(wǎng)站訪問(wèn)量排行
  • 六合哪家做網(wǎng)站建設(shè)靈寶seo公司
  • wordpress 圖片連接插件福建seo
  • 做網(wǎng)站智能工具代發(fā)百度首頁(yè)排名
  • vs做網(wǎng)站怎么上做銷(xiāo)售有什么技巧和方法
  • 手機(jī)網(wǎng)站的做電商最好賣(mài)的十大產(chǎn)品
  • 有什么網(wǎng)站可以做投票關(guān)鍵詞搜索排名
  • 可以自己做網(wǎng)站賺錢(qián)嗎小程序制作
  • 網(wǎng)站建設(shè)donglongyun免費(fèi)自助建站模板
  • 做公司的網(wǎng)站怎么上線廈門(mén)網(wǎng)站推廣優(yōu)化哪家好
  • 北京海淀網(wǎng)站建設(shè)百度搜索數(shù)據(jù)統(tǒng)計(jì)
  • ffmpeg做視頻網(wǎng)站營(yíng)銷(xiāo)策劃與運(yùn)營(yíng)團(tuán)隊(duì)
  • 寶雞市城鄉(xiāng)建設(shè)規(guī)劃局官方網(wǎng)站活動(dòng)策劃方案詳細(xì)模板
  • asp.net電子商務(wù)網(wǎng)站前臺(tái)模板搜索引擎營(yíng)銷(xiāo)的優(yōu)勢(shì)
  • wordpress可以做外貿(mào)seo優(yōu)化推廣軟件
  • 網(wǎng)絡(luò)運(yùn)維和網(wǎng)站開(kāi)發(fā)聚合廣告聯(lián)盟
  • 事業(yè)單位 網(wǎng)站備案seo算法入門(mén)教程
  • 網(wǎng)站建設(shè)什么最重要seo推廣培訓(xùn)費(fèi)用
  • 裝修設(shè)計(jì)軟件酷家樂(lè)seo排名第一
  • 鄭州網(wǎng)站推廣¥做下拉去118cr全網(wǎng)推廣外包公司