溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Linux系統(tǒng)make、make install、./confiigure怎么使用

發(fā)布時(shí)間:2022-01-26 15:47:48 來(lái)源:億速云 閱讀:159 作者:iii 欄目:開(kāi)發(fā)技術(shù)

這篇“Linux系統(tǒng)make、make install、./confiigure怎么使用”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來(lái)看看這篇“Linux系統(tǒng)make、make install、./confiigure怎么使用”文章吧。

簡(jiǎn)單點(diǎn)說(shuō):./configure主要用于檢測(cè)安裝平臺(tái)目標(biāo)特征。make是用來(lái)編譯的,make install**是用來(lái)安裝的。

Linux系統(tǒng)make、make install、./confiigure怎么使用

一、configure

這一步一般用來(lái)生成 Makefile,為下一步的編譯做準(zhǔn)備,你可以通過(guò)在 configure 后加上參數(shù)來(lái)對(duì)安裝進(jìn)行控制,比如代碼:

 ./configure --prefix=/usr

上面的意思是將該軟件安裝在 /usr 下面,執(zhí)行文件就會(huì)安裝在 /usr/bin (而不是默認(rèn)的 /usr/local/bin),資源文件就會(huì)安裝在 /usr/share(而不是默認(rèn)的/usr/local/share)。

當(dāng)然在執(zhí)行這個(gè)腳本的時(shí)候有非常多的可選岸數(shù)可以指定,我們可以通過(guò)允許 ./configure –help 察看詳細(xì)的說(shuō)明幫助。常見(jiàn)的一些參數(shù)如下,并不是每一個(gè)程序都相同哦,有的會(huì)有一些不一樣的:

 (1)--prefix = PREFIX  
 把所有文件裝在目錄PREFIX下面.
     
 (2)--exec-prefix = EXEC-PREFIX  
 你可以把體系相關(guān)的文件安裝到一個(gè)不同的位置,   EXEC-PREFIX,而不是   PREFIX   設(shè)置的地方.這樣做可以比較方便地在不同主機(jī)之間共享體系相關(guān)的文件.   如果你省略這些,那么   EXEC-PREFIX   就會(huì)被設(shè)置為等于   PREFIX   并且體系相關(guān)和體系無(wú)關(guān)的文件都會(huì)安裝到同一棵目錄樹(shù)下,   這也可能是你想要的.    
     
 (3)--bindir=DIRECTORY  
 為可執(zhí)行程序聲明目錄,缺省是 EXEC-PREFIX/bin,通常也就是 /usr/local/pgsql/bin.    
     
 (4)--datadir=DIRECTORY  
 設(shè)置所安裝的程序需要的只讀文件的目錄.缺省是   PREFIX/share.   請(qǐng)注意這個(gè)目錄和你放數(shù)據(jù)庫(kù)文件的地方?jīng)]有任何關(guān)系.    
     
 (5)--sysconfdir=DIRECTORY  
 用于各種各樣配置文件的目錄,缺省為   PREFIX/etc.    
     
 (6)--libdir=DIRECTORY  
 庫(kù)文件和動(dòng)態(tài)裝載模塊  的目錄.缺省是   EXEC-PREFIX/lib.    
     
 (7)--includedir=DIRECTORY  
   C和C++   頭文件的目錄.缺省是   PREFIX/include.    
     
 (8)--docdir=DIRECTORY  
 文檔文件,(除   “man(手冊(cè)頁(yè))”以外,   將被安裝到這個(gè)目錄.缺省是   PREFIX/doc.    
     
 (9)--mandir=DIRECTORY  
 隨著   PostgreSQL   一起帶的手冊(cè)頁(yè)   將安裝到這個(gè)目錄.在它們相應(yīng)的   manx子目錄里.   缺省是   PREFIX/man.

二、make

這一步就是編譯,大多數(shù)的源代碼包都經(jīng)過(guò)這一步進(jìn)行編譯(當(dāng)然有些perl或python編寫(xiě)的軟件需要調(diào)用perl或python來(lái)進(jìn)行編譯)。

make 是 Linux 開(kāi)發(fā)套件里面自動(dòng)化編譯的一個(gè)控制程序,他通過(guò)借助 Makefile 里面編寫(xiě)的編譯規(guī)范進(jìn)行自動(dòng)化的調(diào)用 gcc 、ld 以及運(yùn)行某些需要的程序進(jìn)行編譯的程序。一般情況下,他所使用的 Makefile 控制代碼,由 configure 這個(gè)設(shè)置腳本根據(jù)給定的參數(shù)和系統(tǒng)環(huán)境生成。

如果 在 make 過(guò)程中出現(xiàn) error ,你就要記下錯(cuò)誤代碼(注意不僅僅是最后一行),然后你可以向開(kāi)發(fā)者提交 bugreport(一般在 INSTALL 里有提交地址),或者你的系統(tǒng)少了一些依賴庫(kù)等,這些需要自己仔細(xì)研究錯(cuò)誤代碼。

make 的作用是開(kāi)始進(jìn)行源代碼編譯,以及一些功能的提供,這些功能由他的 Makefile 設(shè)置文件提供相關(guān)的功能,比如 make install 一般表示進(jìn)行安裝,make uninstall 是卸載,不加參數(shù)就是默認(rèn)的進(jìn)行源代碼編譯。

三、make install

這條命令來(lái)進(jìn)行安裝(當(dāng)然有些軟件需要先運(yùn)行 make check 或 make test來(lái)進(jìn)行一些測(cè)試),這一步一般需要你有 root 權(quán)限(因?yàn)橐蛳到y(tǒng)寫(xiě)入文件)


一些常見(jiàn)的問(wèn)題:

(1)Linux CC與Linux GCC的區(qū)別概括介紹:

從名字上看,老的unix系統(tǒng)的CC程序叫做C Compiler,它是一個(gè)古老的Unix上專門(mén)用于編譯C語(yǔ)言的編譯器。但GCC這個(gè)名字按GNU的說(shuō)法叫做Gnu Compiler Collection。因?yàn)間cc包含很多編譯器(C, C++, Objective-C, Ada, Fortran,and   Java)。所以它們是不一樣的,一個(gè)是一個(gè)古老的C編譯器,一個(gè)是編譯器的GNU的編譯器的集合(Gcc里的C編譯器比CC強(qiáng)大太多了,所以你沒(méi)必要用CC)。當(dāng)你調(diào)用gcc時(shí)不一定是調(diào)用的C/C++編譯器,是gcc根據(jù)文件擴(kuò)展名自動(dòng)識(shí)別并調(diào)用對(duì)應(yīng)的編譯器,具體可查閱$man gcc。

你是下載不到CC的,原因是:CC來(lái)自于昂貴的Unix系統(tǒng),CC是商業(yè)軟件,要想用你需要打電話,寫(xiě)訂單,而不是打開(kāi)你的Browser去download。

linux下的cc是gcc的符號(hào)鏈接,可以通過(guò)$ls –l /usr/bin/cc來(lái)簡(jiǎn)單察看。而編譯時(shí)看到的控制臺(tái)輸出CC則是一個(gè)指向gcc的變量,該變量是make程序的內(nèi)建變量,就算你在Makefile中沒(méi)有CC= ,該變量也會(huì)存在,并默認(rèn)指向gcc。cc的符號(hào)鏈接和變量存在的意義在于源碼的移植性,可以方便的用GCC來(lái)編譯老的用cc編譯的unix軟件,甚至連Makefile都不要改。而且也便于linux程序在unix下編譯。

近幾年的一個(gè)新情況是越來(lái)越多的unix用戶,據(jù)我所知像solaris,bsd用戶也不太使用CC了,人們都一定要裝一個(gè)gcc,用它來(lái)編譯C/C++程序。原因顯而易見(jiàn),gcc足夠強(qiáng)大,健壯。支持估計(jì)目前為止只有它支持的ISO c/c++ 新特性。當(dāng)然你最好不要使用night版本的gcc。

(2)關(guān)于make install的解釋

make 和 make install 中的mark是系統(tǒng)自帶的命令還是可執(zhí)行程序文件?make install中,是不是可以認(rèn)為 install是mark的參數(shù)???

注意:install 不是make的參數(shù),而是在makefile(Makefile)中有如:install:的語(yǔ)句。如果用make install,那么就執(zhí)行install:后面的語(yǔ)句。

以上就是關(guān)于“Linux系統(tǒng)make、make install、./confiigure怎么使用”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI