linux添加靜態(tài)域名和地址 如何在linux平臺(tái)生成靜態(tài)鏈接庫(kù)與動(dòng)態(tài)鏈接庫(kù)?
如何在linux平臺(tái)生成靜態(tài)鏈接庫(kù)與動(dòng)態(tài)鏈接庫(kù)?動(dòng)態(tài)庫(kù)和靜態(tài)庫(kù)在Win下,動(dòng)態(tài)庫(kù)以。dll和靜態(tài)庫(kù)以。lib。在Linux下,動(dòng)態(tài)庫(kù)文件以。靜態(tài)庫(kù)以。a.在Mac下,動(dòng)態(tài)庫(kù)以。dylib和靜態(tài)庫(kù)以。a
如何在linux平臺(tái)生成靜態(tài)鏈接庫(kù)與動(dòng)態(tài)鏈接庫(kù)?
動(dòng)態(tài)庫(kù)和靜態(tài)庫(kù)
在Win下,動(dòng)態(tài)庫(kù)以。dll和靜態(tài)庫(kù)以。lib。
在Linux下,動(dòng)態(tài)庫(kù)文件以。靜態(tài)庫(kù)以。a.
在Mac下,動(dòng)態(tài)庫(kù)以。dylib和靜態(tài)庫(kù)以。a.
動(dòng)態(tài)圖書館的利與弊
動(dòng)態(tài)函數(shù)庫(kù)在編譯時(shí)并沒(méi)有編譯成目標(biāo)代碼,只有在你的程序執(zhí)行相關(guān)函數(shù)時(shí)才會(huì)調(diào)用函數(shù)庫(kù)中對(duì)應(yīng)的函數(shù),所以動(dòng)態(tài)函數(shù)庫(kù)生成的可執(zhí)行文件比較小。因?yàn)楹瘮?shù)庫(kù)不是集成到你的程序中,而是在程序運(yùn)行時(shí)動(dòng)態(tài)應(yīng)用和調(diào)用的,所以程序的運(yùn)行環(huán)境中必須提供相應(yīng)的庫(kù)。動(dòng)態(tài)函數(shù)庫(kù)的改變不影響你的程序,升級(jí)動(dòng)態(tài)函數(shù)庫(kù)更方便。
當(dāng)一個(gè)程序在運(yùn)行時(shí)調(diào)用一個(gè)動(dòng)態(tài)鏈接庫(kù)函數(shù)時(shí),操作系統(tǒng)首先查看所有正在運(yùn)行的進(jìn)程,看是否有人加載了這個(gè)庫(kù)。有就直接用。如果沒(méi)有,它將被加載。這樣做的第一個(gè)好處是節(jié)省內(nèi)存空間。動(dòng)態(tài)調(diào)入意味著要等到需要的時(shí)候,而不是不管用不用都先放在內(nèi)存里。
如果我想升級(jí)一些軟件。如果升級(jí)位置在dll中,則軟件的其他部分不需要重新編譯鏈接。所以升級(jí)方便。
靜態(tài)庫(kù)的優(yōu)點(diǎn)和缺點(diǎn)
靜態(tài)函數(shù)庫(kù)編譯的文件比較大,因?yàn)檎麄€(gè)函數(shù)庫(kù)在編譯的時(shí)候會(huì)集成到目標(biāo)代碼中,它的優(yōu)勢(shì)很明顯,就是編譯的執(zhí)行程序不需要外部函數(shù)庫(kù)的支持,因?yàn)槭褂玫暮瘮?shù)都已經(jīng)編譯好了。當(dāng)然這也會(huì)是他的缺點(diǎn),因?yàn)槿绻愕撵o態(tài)鏈接函數(shù)庫(kù)發(fā)生了變化,那么你的程序就必須重新編譯。
代碼更加精簡(jiǎn),因?yàn)椴恍枰M(jìn)行版本檢查。
當(dāng)程序被分發(fā)時(shí),文件的數(shù)量很少,因?yàn)樗庆o態(tài)鏈接到源文件的。
僅編譯庫(kù)中使用的部分,而不是整個(gè)庫(kù)。
生成的二進(jìn)制文件會(huì)占用更多空間。
重復(fù)的庫(kù)可能出現(xiàn)在多個(gè)進(jìn)程中,浪費(fèi)內(nèi)存。
如果庫(kù)內(nèi)部更新,二進(jìn)制文件需要重新編譯。
Linu臺(tái)的靜態(tài)庫(kù)
靜態(tài)庫(kù)的生成
靜態(tài)庫(kù)的鏈接
Linu臺(tái)的動(dòng)態(tài)庫(kù)
動(dòng)態(tài)庫(kù)的生成
動(dòng)態(tài)庫(kù)的鏈接
Windows平臺(tái)的靜態(tài)庫(kù)
靜態(tài)庫(kù)/MT的生成使用編譯來(lái)創(chuàng)建多線程可執(zhí)行文件。生成靜態(tài)庫(kù)lib。
靜態(tài)庫(kù)的鏈接。使用鏈接庫(kù)在代碼開(kāi)頭添加,第二行是鏈接庫(kù)中要調(diào)用的函數(shù):
2.把要調(diào)用的鏈接庫(kù)的lib放到項(xiàng)目源代碼中,進(jìn)行編譯。你不 編譯時(shí)不需要?jiǎng)討B(tài)鏈接庫(kù)。這里靜態(tài)部分lib編譯成exe,動(dòng)態(tài)庫(kù)dll沒(méi)用。)
3.運(yùn)行前將dll放在exe目錄中。
Windows平臺(tái)的動(dòng)態(tài)庫(kù)
動(dòng)態(tài)庫(kù)/MD的生成使用編譯來(lái)創(chuàng)建多線程dll。生長(zhǎng)變成一個(gè)動(dòng)態(tài)圖書館。
動(dòng)態(tài)庫(kù)的鏈接1,LoadLibrary(或者M(jìn)FC的AfxLoadLibrary),加載動(dòng)態(tài)庫(kù)。
,獲取要引入的函數(shù),將符號(hào)名或標(biāo)識(shí)號(hào)轉(zhuǎn)換成DLL的內(nèi)部地址。
(或MFC的AfxFr
linux中如何改IP?
第一種是在安裝的時(shí)候把服務(wù)器的IP地址配置成固定的IP地址,這樣安裝之后就不用修改了,非常方便。首先,啟動(dòng)安裝程序,開(kāi)始安裝。第一步是配置語(yǔ)言,然后進(jìn)入系統(tǒng)設(shè)置界面。
2在系統(tǒng)設(shè)置界面,也就是系統(tǒng)下,可以看到一個(gè)網(wǎng)絡(luò)放大器主機(jī)名的選項(xiàng),可以看到默認(rèn)是斷開(kāi)的。點(diǎn)進(jìn)去之后可以看到對(duì)應(yīng)的網(wǎng)卡也是關(guān)著的。然后點(diǎn)擊右下角的配置,進(jìn)入網(wǎng)卡設(shè)置界面。
3在網(wǎng)卡設(shè)置界面,可以看到有一個(gè)IPv4設(shè)置。單擊此選項(xiàng)卡。點(diǎn)進(jìn)去可以看到默認(rèn)設(shè)置是自動(dòng)(DHCP),意思是自動(dòng)采集。
4點(diǎn)擊Method右邊的下拉箭頭,可以看到有很多選項(xiàng)。如果要設(shè)置固定IP,請(qǐng)單擊手動(dòng)。然后點(diǎn)擊下面的添加按鈕,填寫固定IP信息。配置完成后,點(diǎn)擊右下角的保存按鈕保存配置。
5.保存后回到網(wǎng)卡的信息界面,點(diǎn)擊關(guān)閉變成開(kāi)啟,就可以看到連接流暢了。然后點(diǎn)擊左上角的Done保存設(shè)置,然后返回系統(tǒng)安裝界面,點(diǎn)擊begain install繼續(xù)安裝系統(tǒng)。
6系統(tǒng)安裝完成后,登錄系統(tǒng),輸入賬號(hào)密碼。然后使用ifconfig命令查看配置的網(wǎng)卡信息,可以看到已經(jīng)正確配置了,如下面第一個(gè)圖所示。然后我們使用ping命令來(lái)檢查,我們可以看到我們可以ping百度 的域名,表示配置已經(jīng)生效。
編輯配置文件以設(shè)置固定IP
如果在安裝過(guò)程中沒(méi)有通過(guò)上述第一種方法配置固定IP,而是直接使用默認(rèn)的DHCP模式,如下圖第一所示。安裝完成后,您需要手動(dòng)配置IP。
系統(tǒng)成功安裝后,輸入帳戶密碼并使用ifconfig命令檢查ip信息。默認(rèn)可以看到網(wǎng)卡ens33沒(méi)有獲得任何IP地址信息,也就是沒(méi)有看到inet這個(gè)詞。
這時(shí),我們打開(kāi)網(wǎng)卡的配置文件,命令是:
VI/etc/sys config/network-scripts/if CFG-ens 33
打開(kāi)就能看到。默認(rèn)配置是dhcp,然后是onbootno,這意味著它不會(huì)隨著系統(tǒng)啟動(dòng)而啟動(dòng)。我們需要修改這個(gè)配置。
按如下修改配置:
BOOTPROTOstatic
表示使用靜態(tài)固定IP。
onbootyes
表示網(wǎng)卡在系統(tǒng)啟動(dòng)時(shí)啟動(dòng)。
同時(shí)在最后加上需要配置的IP地址信息。如圖所示
配置完成后,我們使用命令:
systemctl重新啟動(dòng)網(wǎng)絡(luò)
重啟網(wǎng)卡,然后用ifconfig命令檢查網(wǎng)卡信息,可以看到IP配置已經(jīng)生效,然后用ping命令ping百度 的網(wǎng)站。您可以看到它已連接,這表明IP地址配置正確。至此,介紹了配置固定IP的兩種方法。