前言
本篇用乙個最簡單的例子引入makefile,教你編寫第乙個makefile
正文
在download/aa資料夾下有a.c和makefile檔案
1 litao@litao:~/downloads/aa$ ls其中a.c為:2 a.c makefile
1 #include2其中makefile為:intmain()
311 printf("\n"
);12
}13 }
其格式為:
1makefile檔案的基本單元是規則。一條規則指定乙個或多個目標檔案,目標檔案後面跟的是編譯生成該目標檔案所依賴的檔案或模組,最後是生成或更新目標檔案所用的命令。格式如下: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
其中中的內容是可選的。
上面第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....