linux編譯make
A. linux make命令什麼意思
Make的概念:
Make這個詞,英語的意思是"製作"。Make命令直接用了這個意思,就是要做出某個文件。比如,要做出文件a.txt,就可以執行下面的命令。
代碼如下:
$ make a.txt
但是,如果你真的輸入這條命令,它並不會起作用。因為Make命令本身並不知道,如何做出a.txt,需要有人告訴它,如何調用其他命令完成這個目標。
比如,假設文件 a.txt 依賴於 b.txt 和 c.txt ,是後面兩個文件連接(cat命令)的產物。那麼,make 需要知道下面的規則。
代碼如下:
a.txt: b.txt c.txt
cat b.txt c.txt > a.txt
也就是說,make a.txt 這條命令的背後,實際上分成兩步:第一步,確認 b.txt 和 c.txt 必須已經存在,第二步使用 cat 命令 將這個兩個文件合並,輸出為新文件。
像這樣的規則,都寫在一個叫做Makefile的文件中,Make命令依賴這個文件進行構建。Makefile文件也可以寫為makefile, 或者用命令行參數指定為其他文件名。
代碼如下:
$ make -f rules.txt
# 或者
$ make --file=rules.txt
上面代碼指定make命令依據rules.txt文件中的規則,進行構建。
總之,make只是一個根據指定的Shell命令進行構建的工具。它的規則很簡單,你規定要構建哪個文件、它依賴哪些源文件,當那些文件有變動時,如何重新構建它。
B. Linux中make, make install命令分別是什麼,用法
make是用來編譯的,它從Makefile中讀取指令,然後編譯。
make install是用來安裝的,它也從Makefile中讀取指令,安裝到指定的位置。
用法:
1、make:
這一步就是編譯,大多數的源代碼包都經過這一步進行編譯(當然有些perl或python編寫的軟體需要調用perl或python來進行編譯)。
如果 在 make 過程中出現 error ,就要記下錯誤代碼(注意不僅僅是最後一行),然後可以向開發者提交 bugreport(一般在 INSTALL 里有提交地址)。
或者系統少了一些依賴庫等,這些需要自己仔細研究錯誤代碼。
make 的作用是開始進行源代碼編譯,以及一些功能的提供,這些功能由他的 Makefile 設置文件提供相關的功能。
比如 make install 一般表示進行安裝,make uninstall 是卸載,不加參數就是默認的進行源代碼編譯。
make 是 Linux 開發套件裡面自動化編譯的一個控製程序,他通過藉助 Makefile 裡面編寫的編譯規范進行自動化的調用 gcc 、ld 以及運行某些需要的程序進行編譯的程序。
一般情況下,他所使用的 Makefile 控制代碼,由 configure 這個設置腳本根據給定的參數和系統環境生成。
2、make install
這條命令來進行安裝(當然有些軟體需要先運行 make check 或 make test來進行一些測試),這一步一般需要你有 root 許可權(因為要向系統寫入文件)。
(2)linux編譯make擴展閱讀
當我們在使用make命令時,常常會在make後面加上其他單詞,比如check,install,installcheck…這些單詞都是make的參數,我們稱之為「目標(targets)」。
最常見的幾個目標:
make all:編譯程序、庫、文檔等(等同於make)
make install:安裝已經編譯好的程序。復制文件樹中到文件到指定的位置
make unistall:卸載已經安裝的程序。
make clean:刪除由make命令產生的文件
make distclean:刪除由./configure產生的文件
make check:測試剛剛編譯的軟體(某些程序可能不支持)
make installcheck:檢查安裝的庫和程序(某些程序可能不支持)
make dist:重新打包成packname-version.tar.gz