真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

linux要編譯源碼的原因是什么

本篇內(nèi)容介紹了“l(fā)inux要編譯源碼的原因是什么”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

成都創(chuàng)新互聯(lián)是一家專注于網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)與策劃設(shè)計(jì),太子河網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十載,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:太子河等地區(qū)。太子河做網(wǎng)站價(jià)格咨詢:18980820575

原因:1、Linux發(fā)型版本眾多,但是每個(gè)版本采用的軟件或者內(nèi)核版本都不一樣,而二進(jìn)制包所依賴的環(huán)境不一定能夠正常運(yùn)行,所以大部分軟件直接提供源碼進(jìn)行編譯安裝。2、方便定制,滿足不同的需求。3、方便運(yùn)維、開(kāi)發(fā)人員維護(hù);源碼是可以打包二進(jìn)制的,但是對(duì)于這個(gè)軟件的打包都會(huì)有一份代價(jià)不小的額外工作,包括維護(hù),所以如果是源碼的話,軟件產(chǎn)商會(huì)直接維護(hù)。

linux為什么要編譯源碼

一般來(lái)說(shuō),我們軟件的安裝方式有yum(rpm),和源碼編譯兩種方式,那么為什么我們需要源碼編譯安裝一部分軟件?選擇源碼編譯安裝軟件有以下幾個(gè)原因:

  • 滿足不同的運(yùn)行平臺(tái),我們Linux發(fā)型版本眾多,但是每個(gè)版本采用的軟件或者內(nèi)核版本都不一樣,而我們的二進(jìn)制包所依賴的環(huán)境不一定能夠正常運(yùn)行,所以大部分軟件直接提供源碼!

  • 方便定制,滿足不同的需求,很多時(shí)候我們所需要的軟件都是可以定制的,我需要什么就安裝什么,大多數(shù)二進(jìn)制代碼都是一鍵裝全,所以自由度并不高!

  • 方便運(yùn)維、開(kāi)發(fā)人員維護(hù),我們的源碼是可以打包二進(jìn)制的,但是對(duì)于這個(gè)軟件的打包都會(huì)有一份代價(jià)不小的額外工作,包括維護(hù),所以如果是源碼的話,軟件產(chǎn)商會(huì)直接維護(hù),但是如果是二進(jìn)制的話,一般都是Linux發(fā)行商提供。

linux編譯源碼教程

Linux上幾乎所有的軟件都經(jīng)過(guò)了GPL授權(quán),因此幾乎所有的軟件都會(huì)提供源碼。

而一個(gè)軟件要在Linux上執(zhí)行,必須是二進(jìn)制文件,因此當(dāng)我們拿到軟件源碼后,需要將它編譯成二進(jìn)制文件才能在Linux上運(yùn)行。

1、軟件編譯過(guò)程

將源碼編譯成可供Linux運(yùn)行的二進(jìn)制文件一共需要兩步:

  • 使用gcc編譯器將源碼編譯成目標(biāo)文件

  • 再次使用gcc編譯器將目標(biāo)文件鏈接成二進(jìn)制文件

這過(guò)程看似簡(jiǎn)單,實(shí)則不然。一個(gè)軟件的源代碼往往被封裝在多個(gè)源文件中,此外這些文件有錯(cuò)綜復(fù)雜的依賴關(guān)系,編譯需要嚴(yán)格按照指定的順序進(jìn)行,這無(wú)疑增加了編譯的難度。好在make命令可以幫助我們簡(jiǎn)化編譯過(guò)程。

整個(gè)編譯過(guò)程被濃縮在Makefile文件中(告訴make命令需要怎么去編譯和鏈接程序),當(dāng)執(zhí)行make命令時(shí),make會(huì)去當(dāng)前目錄中尋找Makefile文件,并根據(jù)該文件中的要求完成整個(gè)編譯過(guò)程。

而Makefile文件由configure命令產(chǎn)生。當(dāng)執(zhí)行configure命令時(shí),configure會(huì)根據(jù)當(dāng)前系統(tǒng)環(huán)境動(dòng)態(tài)生成一個(gè)適合本系統(tǒng)的Makefile文件,供make命令使用。

2、Linux源碼安裝步驟

  • 獲取源碼
    將軟件的源碼下載至/usr/local/,并解壓。

  • 查看INSTALL與README文件
    解壓后查看INSTALL與README文件,這兩個(gè)文件中詳細(xì)介紹了本軟件的安裝方法和注意事項(xiàng)。

  • 創(chuàng)建Makefile文件
    執(zhí)行configure命令,生成Makefile文件。

  • 編譯
    執(zhí)行make clean;make命令將源碼編譯成二進(jìn)制文件。
    PS:make clean命令用來(lái)清除上一次編譯生成的目標(biāo)文件。這個(gè)步驟可有可無(wú),但為了確保編譯的成功,還是加上為好。防止由于軟件中含有殘留的目標(biāo)文件導(dǎo)致編譯失敗。

  • 安裝
    執(zhí)行make install命令將上一步編譯好的二進(jìn)制文件安裝到指定的目錄中去。

3、安裝演示

1)進(jìn)入/usr/local/,并創(chuàng)建memcached目錄:

cd /usr/local/
mkdir memcached

2)下載memcached的源碼

wget http://memcached.org/files/memcached-1.4.29.tar.gz

3)解壓源碼

tar -zxvf memcached-1.4.29.tar.gz

4)執(zhí)行configure,生成Makefile文件

./configure --prefix=/usr/local/memcached/

此時(shí)當(dāng)前目錄下將會(huì)生成一個(gè)Makefile文件。

注意:–prefix參數(shù)指定軟件安裝目錄。當(dāng)執(zhí)行make install命令時(shí),會(huì)將軟件安裝在此路徑中,如果不指定該參數(shù),不指定prefix,可執(zhí)行文件默認(rèn)放在/usr /local/bin,庫(kù)文件默認(rèn)放在/usr/local/lib,配置文件默認(rèn)放在/usr/local/etc。其它的資源文件放在/usr /local/share。

5)執(zhí)行make,從Makefile中讀取指令,編譯源碼

make

此時(shí)make會(huì)讀取Makefile文件,將源碼編譯成二進(jìn)制文件,并存放在當(dāng)前目錄下。

執(zhí)行這一步之前可以先進(jìn)行清理作業(yè):

make clean && make uninstall

6)執(zhí)行make install,將軟件安裝至指定目錄

make install

此時(shí)二進(jìn)制文件會(huì)被安裝到先前configure prefix參數(shù)設(shè)置的路徑中去。
安裝完成!

4、cmake命令(了解)

cmake就是一個(gè)與make同級(jí)別的編譯工具,只不過(guò)它依靠的不是Makefile作為編譯規(guī)則,而是根據(jù)CMakeLists.txt來(lái)編譯的。
CMake是一個(gè)比make更高級(jí)的編譯配置工具,它可以根據(jù)不同平臺(tái)、不同的編譯器,通過(guò)編寫CMakeLists.txt,可以控制生成的Makefile,從而控制編譯過(guò)程。

CMake自動(dòng)生成的Makefile不僅可以通過(guò)make命令構(gòu)建項(xiàng)目生成目標(biāo)文件,還支持安裝(make install)、測(cè)試安裝的程序是否能正確執(zhí)行(make test,或者ctest)、生成當(dāng)前平臺(tái)的安裝包(make package)、生成源碼包(make package_source)、產(chǎn)生Dashboard顯示數(shù)據(jù)并上傳等高級(jí)功能,只要在CMakeLists.txt中簡(jiǎn)單配置,就可以完成很多復(fù)雜的功能,包括寫測(cè)試用例。
如果有嵌套目錄,子目錄下可以有自己的CMakeLists.txt。

“l(fā)inux要編譯源碼的原因是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!


標(biāo)題名稱:linux要編譯源碼的原因是什么
轉(zhuǎn)載來(lái)于:http://weahome.cn/article/ihhige.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部