.config/ .configure (查看該目錄下是否有這個文件,如果有makefile,可直接make) 配置
config是一個shell腳本,根據平台的特性生成Makefile文件,為下一步的編譯做准備,
可以通過在 configure 后加上參數來對安裝進行控制,比如:
./configure --prefix=/usr (將該軟件安裝在 /usr 下面)
可以通過 ./configure --help 查看詳細的說明幫助
如果有需要,會進行 make depend
(一種makefile的規則,通過掃描一個目錄下的所有C\C++ 代碼,從而判斷出文件之間的依賴關系,如a.cc文件中調用了b.h(如以形勢include<b.h>),如果之后a.cc文件被改動,那么只需要重新編譯a.cc文件,不需要編譯b.h文件。否則所有的文件都需要重新編譯)
make 編譯
從Makefile中讀取指令,根據makefile制定的規則,將c\c++文件編譯成*.o文件,然后進一步生成可執行文件。大多數的源代碼包都經過這一步進行編譯,(當然有些perl或python編寫的軟件需要調用perl或python來進行編譯)。
如果 在make過程中出現 error ,你就要記下錯誤代碼(注意不僅僅是最后一行),然后你可以向開發者提交 bugreport(一般在 INSTALL 里有提交地址),或者你的系統少了一些依賴庫等,這些需要自己仔細研究錯誤代碼
make test / make check
顧名思義,這一步就是對上一步 make 的檢查了,要確保 make 是沒有錯誤的,也就是這一步的 test、check要全部是 OK 的,error 為0
sudo make install 安裝
這一步是用來安裝的,它也從Makefile中讀取指令,安裝到指定的位置
這條命令來進行安裝,一般需要你有 root 權限(因為要向系統寫入文件),所以前面用了 sudo
流程:
在Linux下安裝一個應用程序時,一般先運行腳本configure,然后用make來編譯源程序,在運行make install,最后運行make clean(刪除源代碼(C\C++ code)生成的執行文件和所有的中間目標文件)刪除一些臨時文件。
這些都是典型的使用GNU的AUTOCONF和AUTOMAKE產生的程序的安裝步驟。
絕大數開源軟件都是公布源代碼的,源代碼一般被打包為tar.gz歸檔壓縮文件,然后手工編譯為二進制可執行文件
./configure 檢查編譯環境/相關庫文件/配置參數,生成makefile
make 對源代碼進行編譯,生成可執行文件
make install 將生成的可執行文件安裝到當前計算機中
特點;
兼容性好/可控制性好/開源軟件會大量使用其他開源軟件的功能,要解決大量的依賴關系