Linux 命令之 make -- GNU的工程化编译工具
文章目錄
- 一、命令介紹
- 二、常用選項
- 三、命令示例
- (一)指定命令 make 的工作目錄
一、命令介紹
make 命令是 GNU 的工程化編譯工具,用于編譯眾多相互關聯的源代碼文件,還可以編輯內核或模塊,以實現工程化的管理,提高開發效率。
make 命令第一次執行時,它會掃描 Makefile 找到目標以及其依賴。如果這些依賴自身也是目標,繼續為這些依賴掃描 Makefile 建立其依賴關系,然后編譯它們。一旦主依賴編譯之后,然后就編譯主目標。
無論是在 Linux 還是在 Unix 環境 中,make 都是一個非常重要的編譯命令。不管是自己進行項目開發還是安裝應用軟件,我們都經常要用到 make 或 make install。利用 make 工具,我們可以將大型的開發項目分解成為多個更易于管理的模塊,對于一個包括幾百個源文件的應用程序,使用 make 和 makefile 工具就可以簡潔明快地理順各個源文件之間紛繁復雜的相互關系。
而且如此多的源文件,如果每次都要鍵入 gcc 命令進行編譯的話,那對程序員 來說簡直就是一場災難。而 make 工具則可自動完成編譯工作,并且可以只對程序員在上次編譯后修改過的部分進行編譯。
因此,有效的利用 make 和 makefile 工具可以大大提高項目開發的效率。同時掌握make和makefile之后,您也不會再面對著 Linux 下的應用軟件手足無措了。
二、常用選項
| -r | 禁用內置的隱含規則,禁止使用 build-in 規則 |
| -B | 始終無條件make所有目標 |
| -b | 忽略兼容性 |
| -C<目錄> 或 -c | 在讀取 makefile 之前改變到指定的目錄下 |
| -L | 在符號鏈接和目標之間使用最后的修改時間 |
| -n 或 --just-print | 只打印命令配方,不實際執行 |
| -o<文件> | 不編譯指定的文件 |
| -e | 環境變量覆蓋 makefile 中的變量 |
| -d | 打印大量調試信息 |
| -i | 忽略命令執行返回的出錯信息 |
| -w 或 --print-directory | 打印當前目錄 |
| --no-print-directory | 關閉 -w,即使 -w 默認開啟 |
| -t 或 --touch | touch 目標(更新修改時間)而不是重新制作它們 |
| -p 或 --print-data-base | 打印 make 的內部數據庫 |
| -q | make 操作將根據目標文件是否已經更新返回"0"或非"0"的狀態信息 |
| -R | 禁用內置變量設置 |
| -s | 不回顯命令。沉默模式,在執行之前不輸出相應的命令行信息 |
| -I<目錄> | 在指定目錄下搜索 makefile 文件 |
| -f<文件> | 讀取指定文件作為 makefile 文件 |
| -k | 當有些目標不能 make 下去時,繼續執行 |
| --debug[=旗標] | 打印各種調試信息 |
| -j [N] 或 --jobs[=N] | 同時允許 N 個任務;無參數表明允許無限個任務 |
| -l [N] 或 --load-average[=N] 或 --max-load[=N] | 在系統負載高于 N 時不啟動多任務 |
| -S | 關閉 -k |
| --warn-undefined-variables | 當引用未定義變量的時候發出警告 |
| -W<文件> | 將 <文件> 當做最新 |
三、命令示例
(一)指定命令 make 的工作目錄
將命令 make 的工作目錄切換為目錄 /linuxcool/:
[root@linuxcool ~]# make -C /linuxcool/總結
以上是生活随笔為你收集整理的Linux 命令之 make -- GNU的工程化编译工具的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安卓手机清理内存怎么清理(安卓手机清理内
- 下一篇: arpanet(阿帕网)