本文的開發環境為:
Ubuntu 16.04
GNU Make 4.1
複製程式碼
HelloWorld
新建一個hello.c
檔案:
#include <stdio.h>
int main(int argc, char *argv[]){
printf("%s\n","Hello world.");
return 0;
}
複製程式碼
這段程式碼很簡單,第一行是引入標頭檔案,然後定義一個main
函式,其中main
函式的第一個引數是執行時候傳入的引數個數,第二個是傳入的引數
編譯
make ./hello
複製程式碼
執行
./hello
複製程式碼
如果一切正常的話,命令列就會輸出HelloWorld
Makefile
make
命令執行時,需要一個Makefile
檔案,以告訴make
命令需要怎麼樣的去編譯和連結程式。那為什麼我們上面沒有Makefile
檔案也可以構建呢?那是因為make
內建了一些預設規則,以上的規則大概是這樣:
make ./hello
CFLAGS="-Wall" make ./hello
複製程式碼
其中的CFLAGS="-Wall" make ./hello
這行命令告訴編譯器要報告所有的警告。接下來我們自己來寫一個Makefile
檔案。新建一個Makefile
檔案,寫入一下內容:
CFLAGS=-Wall -g
clean:
rm -rf hello
複製程式碼
要注意的一點是
rm -rf
前面是一個TAB
,而不是四個空格。其中-g
表示加入除錯程式碼,可以使用GDB進行除錯
然後來執行一下命令:
make clean
make ./hello
複製程式碼
這時候就可以執行了