您好,登錄后才能下訂單哦!
這篇“Linux系統make、make install、./confiigure怎么使用”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Linux系統make、make install、./confiigure怎么使用”文章吧。
簡單點說:./
主要用于檢測安裝平臺目標特征。 是用來 的,make install**是用來安裝的。這一步一般用來生成 Makefile,為下一步的編譯做準備,你可以通過在 configure 后加上參數來對安裝進行控制,比如代碼:
./configure --prefix=/usr
上面的意思是將該軟件安裝在 /usr 下面,執行文件就會安裝在 /usr/bin (而不是默認的 /usr/local/bin),資源文件就會安裝在 /usr/share(而不是默認的/usr/local/share)。
當然在執行這個腳本的時候有非常多的可選岸數可以指定,我們可以通過允許 ./configure –help 察看詳細的說明幫助。常見的一些參數如下,并不是每一個程序都相同哦,有的會有一些不一樣的:
(1)--prefix = PREFIX 把所有文件裝在目錄PREFIX下面. (2)--exec-prefix = EXEC-PREFIX 你可以把體系相關的文件安裝到一個不同的位置, EXEC-PREFIX,而不是 PREFIX 設置的地方.這樣做可以比較方便地在不同主機之間共享體系相關的文件. 如果你省略這些,那么 EXEC-PREFIX 就會被設置為等于 PREFIX 并且體系相關和體系無關的文件都會安裝到同一棵目錄樹下, 這也可能是你想要的. (3)--bindir=DIRECTORY 為可執行程序聲明目錄,缺省是 EXEC-PREFIX/bin,通常也就是 /usr/local/pgsql/bin. (4)--datadir=DIRECTORY 設置所安裝的程序需要的只讀文件的目錄.缺省是 PREFIX/share. 請注意這個目錄和你放數據庫文件的地方沒有任何關系. (5)--sysconfdir=DIRECTORY 用于各種各樣配置文件的目錄,缺省為 PREFIX/etc. (6)--libdir=DIRECTORY 庫文件和動態裝載模塊 的目錄.缺省是 EXEC-PREFIX/lib. (7)--includedir=DIRECTORY C和C++ 頭文件的目錄.缺省是 PREFIX/include. (8)--docdir=DIRECTORY 文檔文件,(除 “man(手冊頁)”以外, 將被安裝到這個目錄.缺省是 PREFIX/doc. (9)--mandir=DIRECTORY 隨著 PostgreSQL 一起帶的手冊頁 將安裝到這個目錄.在它們相應的 manx子目錄里. 缺省是 PREFIX/man.
這一步就是編譯,大多數的源代碼包都經過這一步進行編譯(當然有些perl或python編寫的軟件需要調用perl或python來進行編譯)。
make 是 借助 Makefile 里面編寫的編譯規范進行自動化的調用 、ld 以及運行某些需要的程序進行編譯的程序。一般情況下,他所使用的 Makefile 控制代碼,由 configure 這個設置腳本根據給定的參數和系統環境生成。
開發套件里面自動化編譯的一個控制程序,他通過如果 在 make 過程中出現 error ,你就要記下錯誤代碼(注意不僅僅是最后一行),然后你可以向開發者提交 bugreport(一般在 INSTALL 里有提交地址),或者你的系統少了一些依賴庫等,這些需要自己仔細研究錯誤代碼。
make 的作用是開始進行源代碼編譯,以及一些功能的提供,這些功能由他的 Makefile 設置文件提供相關的功能,比如 make install 一般表示進行安裝,make uninstall 是卸載,不加參數就是默認的進行源代碼編譯。
這條命令來進行安裝(當然有些軟件需要先運行 make check 或 make test來進行一些測試),這一步一般需要你有 root 權限(因為要向系統寫入文件)
(1)Linux CC與Linux GCC的區別概括介紹:
從名字上看,老的unix系統的CC程序叫做C Compiler,它是一個古老的Unix上專門用于編譯C語言的編譯器。但GCC這個名字按GNU的說法叫做Gnu Compiler Collection。因為gcc包含很多編譯器(C, C++, Objective-C, Ada, Fortran,and Java)。所以它們是不一樣的,一個是一個古老的C編譯器,一個是編譯器的GNU的編譯器的集合(Gcc里的C編譯器比CC強大太多了,所以你沒必要用CC)。當你調用gcc時不一定是調用的C/C++編譯器,是gcc根據文件擴展名自動識別并調用對應的編譯器,具體可查閱$man gcc。
你是下載不到CC的,原因是:CC來自于昂貴的Unix系統,CC是商業軟件,要想用你需要打電話,寫訂單,而不是打開你的Browser去download。
linux下的cc是gcc的符號鏈接,可以通過$ls –l /usr/bin/cc來簡單察看。而編譯時看到的控制臺輸出CC則是一個指向gcc的變量,該變量是make程序的內建變量,就算你在Makefile中沒有CC= ,該變量也會存在,并默認指向gcc。cc的符號鏈接和變量存在的意義在于源碼的移植性,可以方便的用GCC來編譯老的用cc編譯的unix軟件,甚至連Makefile都不要改。而且也便于linux程序在unix下編譯。
近幾年的一個新情況是越來越多的unix用戶,據我所知像solaris,bsd用戶也不太使用CC了,人們都一定要裝一個gcc,用它來編譯C/C++程序。原因顯而易見,gcc足夠強大,健壯。支持估計目前為止只有它支持的ISO c/c++ 新特性。當然你最好不要使用night版本的gcc。
(2)關于make install的解釋
make 和 make install 中的mark是系統自帶的命令還是可執行程序文件?make install中,是不是可以認為 install是mark的參數???
注意:install 不是make的參數,而是在makefile(Makefile)中有如:install:的語句。如果用make install,那么就執行install:后面的語句。
以上就是關于“Linux系統make、make install、./confiigure怎么使用”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。