[linux]makefile使用
簡介:
使用makefile記錄項目各個文件的依賴關系,make程序會根據依賴關系從底層開始執行編譯命令,最后生成最終目標文件。使用makefile可以方便編譯多個相互依賴的源文件最終生成目標文件。
makefile格式:
makefile以命令為單位組成,2行組成一個命令。第一行冒號前的是本命令的目標生成文件,冒號后面是依賴文件。第二行是生成目標文件需要執行的指令,注意指令前要空TAB。
file:file1.o file2.o 附屬行(文件的依存關系)gcc -o file1.o file2.o 命令行 file1.o:file1.c head.hgcc -c file1.c file2.o:file2.c head.hgcc -c file2.cmakefile第一個命令是生成最終目標文件,下面的命令依次生成最終生成文件的依賴文件。比如最終目標是生成file,依賴于file1.o file2.o,此時它們還不存在。于是繼續往下查找,到第二個命令需要生成file1.o,需要file1.c head.h,此時當前文件夾中包含這兩個文件,于是執行gcc -c file1.c命令。最后,file1.o file2.o都生成了,便可生成最終的file。因此,makefile是從下往上回溯的。
makefile文件必須命名為“makefile”或“Makefile”并存放于項目文件夾中。使用makefile的時候只需在項目文件夾下輸入命令make即可。
一個makefile生成兩個可執行文件,并刪除中間文件:
例如,編譯server_udp.c和client_udp.c生成兩個可執行文件server_udp和client_udp
all:server_udp client_udp#rm *.o server_udp:server_udp.cgcc server_udp.c -o server_udp client_udp:client_udp.cgcc client_udp.c -o client_udpall是一個虛擬的總目標,依賴于我們需要生成的兩個可執行文件,由于它是虛擬的,并不需要命令操作,因此下行的命令留空即可。由于最終目標的命令是最后執行的,因此也可以用rm *.o來刪除所有.o的臨時文件。
makefile功能十分強大,這里只是介紹了最基本最常用的功能而已。
轉載于:https://www.cnblogs.com/iyjhabc/p/3156767.html
超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生總結
以上是生活随笔為你收集整理的[linux]makefile使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sql 触发器的常用语句(转)
- 下一篇: LINUX Find命令使用