編譯 1 第乙個makefile簡單例子

2021-09-22 12:15:06 字數 1328 閱讀 4914

前言

本篇用乙個最簡單的例子引入makefile,教你編寫第乙個makefile

正文

在download/aa資料夾下有a.c和makefile檔案

1 litao@litao:~/downloads/aa$ ls

2 a.c makefile

其中a.c為:

1 #include2

intmain()

311 printf("\n"

);12

}13 }

其中makefile為:

其格式為:

1

a:a.o #link

2gcc a.o -o a

3a.o:a.s #彙編assembling

4gcc -c a.c -o a.o

5a.s:a.i #編譯

6gcc -s a.i -o a.s

7a.i:a.c #pre-processing

8gcc -e a.c -o a.i910

11run:

12./a

13clear:

14 rm -rf a.o a.s a.i a

makefile檔案的基本單元是規則。一條規則指定乙個或多個目標檔案,目標檔案後面跟的是編譯生成該目標檔案所依賴的檔案或模組,最後是生成或更新目標檔案所用的命令。格式如下:

其中中的內容是可選的。

上面第1、2行構成乙個規則~

特別注意生成目標檔案所用命令必須以tab鍵開頭(如果某一行以tab鍵開頭,make就認為是命令)

在依賴檔案列表後面加乙個;號可以跟命令,如下:

11、12行是什麼鬼?

是偽目標!

在makefile檔案中,目標檔案可以分為兩類:實目標和偽目標。實目標檔案是真正要生成的、以檔案的形式存放在硬碟上的目標。偽目標不要求生成實際檔案,而是為了讓make執行一些輔助命令,如列印一些資訊、刪除無用中間檔案等,這裡的run是執行生成a程式,clear是清除所有生成檔案~

效果如下:

編譯 1 第乙個makefile簡單例子

前言 本篇用乙個最簡單的例子引入makefile,教你編寫第乙個makefile 正文 在download aa資料夾下有a.c和makefile檔案 1 litao litao downloads aa ls 2 a.c makefile 其中a.c為 1 include2 intmain 311...

編譯 1 第乙個makefile簡單例子

前言 本篇用乙個最簡單的例子引入makefile,教你編寫第乙個makefile 正文 在download aa資料夾下有a.c和makefile檔案 1 litao litao downloads aa ls 2 a.c makefile 其中a.c為 1 include2 intmain 311...

我的第乙個makefile

目標 依賴1,依賴2 命令示例如下 windows下 生成main.exe依賴outputmatrix.o和main.o 需要執行命令g o main outputmatrix.o main.o 下同 main outputmatrix.o main.o g o main outputmatrix....