makefile知識點總結

2021-10-03 02:57:33 字數 2264 閱讀 5977

目錄

粗略的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...