目錄
粗略的makefile的規則:
使用流程:
示例1:
使用技巧:
1.使用變數
2.make會自動推導
target ... : prerequisites ...
command
......
target是目標檔案 冒號後面是以來檔案
1.在乙個名字為 'makefile' 或者 'makefile' 的檔案中寫出依賴關係
心得體會:
gcc -c main.c //彙編
gcc -o main //連線
在彙編時,可以不用加靜態庫,最後總的連線時,再加靜態庫
2.儲存退出後
3.在shell終端中輸入make即可
4.如果要刪除目標檔案,執行make clean命令
edit : main.o kbd.o command.o display.o /
insert.o search.o files.o utils.o #反斜槓是換行的意思
cc -o edit main.o kbd.o command.o display.o insert.o search.o files.o utils.o
main.o : main.c defs.h
cc -c main.c
kbd.o : kbd.c defs.h command.h
cc -c kbd.c
command.o : command.c defs.h command.h
cc -c command.c
display.o : display.c defs.h buffer.h
cc -c display.c
insert.o : insert.c defs.h buffer.h
cc -c insert.c
search.o : search.c defs.h buffer.h
cc -c search.c
files.o : files.c defs.h buffer.h command.h
cc -c files.c
utils.o : utils.c defs.h
cc -c utils.c
clean :
rm edit main.o kbd.o command.o display.o insert.o search.o files.o utils.o
如果目標檔案太多,每次給示例1中的2,3,22行新增就挺麻煩
使用變數如
obj = main.o kbd.o command.o display.o insert.o search.o files.o utils.o
示例1就可以變成如下例子
objects = main.o kbd.o command.o display.o /
insert.o search.o files.o utils.o
edit : $(objects)
cc -o edit $(objects)
......
clean :
rm edit $(objects)
示例1也可以這樣寫:
objects = main.o kbd.o command.o display.o insert.o search.o files.o utils.o
edit : $(objects)
cc -o edit $(objects)
main.o : main.c defs.h
kbd.o : kbd.c defs.h command.h
command.o : command.c defs.h command.h
display.o : display.c defs.h buffer.h
insert.o : insert.c defs.h buffer.h
search.o : search.c defs.h buffer.h
files.o : files.c defs.h buffer.h command.h
utils.o : utils.c defs.h
.phony : clean #.phony 的意思是clean是個偽目標檔案
clean :
-rm edit $(objects) #-rm 可以在出現問題時繼續刪除
end 原創 Makefile知識點總結
1.makefile只有行注釋,注釋是用 字元,如果在makefile中使用 字元,可以用反斜框進行轉義,如 2.makefile的預設檔名為makefile或makefile,不然命令make無法執行。當然你也可以使用別的檔名來書寫 makefile,比如 make.linux make.aix ...
Makefile細碎知識點記錄
由於有些規則用的少,記不住,但還是時不時能用到,開個記錄帖記一下這些零散的規則。參考文件 跟我一起學makefile 1.忽略某些檔案 include2.環境變數 makefiles 如果當前環境中定義了該變數,make 會把該變數當作類似 include 的動作,但該變數引入的目標不會起作用,如果...
知識點總結
1,迴圈中的中斷 continue 跳出此次迴圈,繼續for迴圈 break 跳出當前for迴圈 return 跳出當前方法 2,字串的操作 componentseparatedbystring stringbyreplacingoccurencesofstring withstring iskin...