1. 程式人生 > >configure make make clean make install區別聯系

configure make make clean make install區別聯系

object 配置文件 腳本 問題 nbsp 目標 -a file 環境

1.configure命令

這一步一般用來生成 Makefile,為下一步的編譯做準備,你可以通過在 configure 後加上參數來對安裝進行控制,比如代碼:./configure –prefix=/usr 意思是將該軟件安裝在 /usr 下面,執行文件就會安裝在 /usr/bin (而不是默認的 /usr/local/bin),資源文件就會安裝在 /usr/share(而不是默認的/usr/local/share)。同時一些軟件的配置文件你可以通過指定 –sys-config= 參數進行設定。有一些軟件還可以加上 –with、–enable、–without、–disable 等等參數對編譯加以控制,你可以通過允許 ./configure –help 查看詳細的說明幫助

2.make

make 是用來編譯的,它從Makefile中讀取指令,然後編譯。這一步就是編譯,大多數的源代碼包都經過這一步進行編譯(當然有些perl或python編寫的軟件需要調用perl或python來進行編譯)

makefile定義了一系列的規則來指定,哪些文件需要先編譯,哪些文件需要後編譯,哪些文件需要重新編譯,甚至於進行更復雜的功能操作

makefile帶來的好處就是——“自動化編譯”,一旦寫好,只需要一個make命令,整個工程完全自動編譯,極大的提高了軟件開發的效率。make是一個命令工具,是一個解釋makefile中指令的命令工具,一般來說,大多數的IDE都有這個命令

根據Makefile文件編譯源代碼、連接、生成目標文件、可執行文件。

可能遇到的錯誤:make *** 沒有指明目標並且找不到 makefile。問題很明了,沒有Makefile,怎麽辦,原來是要先./configure 一下,再make。

3.make clean

僅僅是清除之前編譯的可執行文件及配置文件(清除上次的make命令所產生的object文件(後綴為“.o”的文件)及可執行文件)

註意:

在make的時候,會重新生成objects, 也就說新的object覆蓋就得objects

make clean 是刪除舊的objects。

所以應該是make已經含有了make clean的功能。

但是實際用的時候,比如多次編譯調試運行, 有時候必須make clean一下,直接make,上次留下來的錯誤似乎不能清幹凈。

4.make install

make install是用來安裝的,它也從Makefile中讀取指令,安裝到指定的位置。

將編譯成功的可執行文件安裝到系統目錄中,一般為/usr/local/bin目錄。

、擴展說明

  Linux的用戶可能知道,在Linux下安裝一個應用程序時,一般先運行腳本configure,然後用make來編譯源程序,在運行make install,最後運行make clean刪除一些臨時文件。使用上述三個自動工具,就可以生成configure腳本。運行configure腳本,就可以生成Makefile文件,然後就可以運行make、make install和make clean。

  configure是一個shell腳本,它可以自動設定源程序以符合各種不同平臺上Unix系統的特性,並且根據系統叁數及環境產生合適的Makefile文件或是C的頭文件(header file),讓源程序可以很方便地在這些不同的平臺上被編譯連接。

  這時,就可運行configure腳本了,運行configure腳本,就可產生出符合GNU規範的Makefile文件了: $ ./configure

到此時,就可以運行make進行編譯,再運行make install進行安裝了,最後運行make clean刪除臨時文件。

configure make make clean make install區別聯系