C指標原理(14)-C指標基礎
make與makefile
make是一個工具程式(Utility software),經由讀取叫做“makefile”的檔案,自動化建構軟體。它是一種轉化檔案形式的工具,轉換的目標稱為“target”;與此同時,它也檢查檔案的依賴關係,如果需要的話,它會呼叫一些外部軟體來完成任務。它的依賴關係檢查系統非常簡單,主要根據依賴檔案的修改時間進行判斷。大多數情況下,它被用來編譯原始碼,生成結果程式碼,然後把結果程式碼連線起來生成可執行檔案或者庫檔案。
makefile的格式是:
#用“井”號表明註釋。
target(要生成的檔案): dependencies(被依賴的檔案)
#命令前面用的是“tab”而非空格。
#誤用空格是初學者容易犯的錯誤!
命令1
命令2
命令3
.
.
.
命令n
#可以使用“”表示續行。注意,“”之後不能有空格!
target通常是我們要生成的檔案的名字,擺放的順序不重要,但第一個target是預設的target。當make不帶引數時,自動執行第一個target。target也可以是要求make完成的動作,執行這種target後並不能得到和target同名的檔案,因此,也稱為偽target(phony target)。
dependencies是生成target所需的檔名列表。依賴可以為空,常用的“clean”target就常常沒有依賴,只有命令。
命令可以是任何一個shell能執行的命令。
2、makefile示例
我們先以“hello,world”為例,說明makefile的使用。在linux的shell環境中用vim編譯hello.c
myhaspl@myhaspl:~/2$ vim hello.c
在開啟的VIM視窗中進行編輯。
#include <stdio.h>
int main(void)
{
printf ("hello,world!");
return 0;
}
然後編譯,這次一步到位編譯完成
myhaspl@myhaspl:~/2$ gcc hello.c -o hello
myhaspl@myhaspl:~/2$ ./hello
hello,world!
接著編寫makefile檔案,實現hello程式的編譯自動化。Makefile檔案內容如下:
hello:hello.c
gcc hello.c -o hello
clean:
rm hello
上面程式碼中,clean後沒有被依賴的檔案,因此,不會被make自動執行,這種情況可理解為一種命令。
make依賴關係檢查系統非常簡單,主要根據依賴檔案的修改時間進行判斷,如果時間比編譯時的時間要新,才重新編譯,否則不會重新,如果需要呼叫make強行重新編譯,就需要將編譯後的目標檔案刪除。因此這裡定義了clean,當想重新呼叫make編譯hello.c時,可以主動呼叫make clean來清除編譯。
我們編譯,執行後,再使用clean選項清除目標檔案,重新編譯一次。
myhaspl@myhaspl:~/2$ make
gcc hello.c -o hello
myhaspl@myhaspl:~/2$ ./hello
hello,world!
myhaspl@myhaspl:~/2$ make clean
rm hello
myhaspl@myhaspl:~/2$ make
gcc hello.c -o hello
myhaspl@myhaspl:~/2$
©著作權歸作者所有:來自51CTO部落格作者myhaspl的原創作品,如需轉載,請註明出處,否則將追究法律責任
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2983/viewspace-2819712/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- C指標原理(15)-C指標基礎指標
- C語言基礎-指標C語言指標
- C語言基礎-1、指標C語言指標
- C | 指標指標
- C指標原理(7)-C內嵌彙編指標
- C指標原理(8)-C內嵌彙編指標
- C指標原理(6)-C內嵌彙編指標
- C++ this 指標C++指標
- C++ 指標C++指標
- 詳解c++指標的指標和指標的引用C++指標
- C語言指標(三):陣列指標和字串指標C語言指標陣列字串
- C/C++指標總結C++指標
- C++指標理解C++指標
- C++智慧指標C++指標
- C語言指標C語言指標
- 指標,c入門指標
- C與指標 第六章 指標指標
- C語言指標(二) 指標變數 ----by xhxhC語言指標變數
- C++基礎回顧4——智慧指標shared_ptrC++指標
- c++ 函式指標C++函式指標
- C陣列和指標陣列指標
- C++(函式指標)C++函式指標
- C++中的this指標C++指標
- [C++] 成員函式指標和函式指標C++函式指標
- 【C++系列】指標物件和物件指標的區別C++指標物件
- 函式指標基礎函式指標
- C++基於模板實現智慧指標C++指標
- C++學習筆記基礎篇15——地址和指標C++筆記指標
- 指標和標籤的基礎理解指標
- C++ 用智慧指標這樣包裝 this 指標是否可行C++指標
- c指標型別的作用指標型別
- c語言指標彙總C語言指標
- c-指標進階篇指標
- C語言指標用法大全C語言指標
- 1-7 C++指標C++指標
- C++11智慧指標用法C++指標
- C語言 函式指標C語言函式指標
- C語言指標筆記C語言指標筆記