ctags命令
ctags是vim下方便代碼閱讀的工具。
首先呢,先創建ctag.h,ctag.c,test.c三個文件。
ctag.h 中爲函數的聲明。
test.c中爲函數的定義。
ctag.c爲主函數。
使用ctrl + R這條命令會在當前目錄下產生一個“tags”文件,當用戶在當前目錄中運行vi時,會自動載入此tags文件。
將光標放在函數處時,使用 ctrl + ] 時,跳到函數的定義處。使用 ctrl + t時,跳到函數的聲明處。
2.make命令
make 是命令,而Makefile是一個文件,在make命令執行時,需要一個Makefile文件,以告訴make命令需要怎樣去編譯和鏈接程序。
Makefile---自動化編譯,一旦寫好,只需一個make命令,整個工程完全自動編譯,極大的提高的軟件開發的效率。
在介紹make之前呢,我們先來理解一下‘\n’。
我們都知道‘\n’是回車換行。
回車是光標重新回到本行開頭(可能會覆蓋之前的內容),換行是光標往下一行(不一定到下一行行首)。
首先呢,先來看這樣一個例子:
printf語句中'\n',在執行時,屏幕上會直接輸出hello bit,然後等待兩秒。結果如右圖所示。
若將printf語句中的'\n'去掉,屏幕上會先等待兩秒,然後輸出hello bit。結果如下圖所示。
注:在執行語句的過程中,若遇到'\n'時,會刷新緩衝區。所以在printf語句中存在'\n'時,執行此語句時,遇到'\n',所以會直接在屏幕上輸出結果。
上述已經說過,make在執行的時候,需要一個Makefile文件。
Makefile文件中主要是文件的依賴關係和依賴方式。
在定義好依賴關係後,後續的那一行定義瞭如何生成目標文件的操作系統命令,一定要以Tab鍵開頭。make並不管命令是怎麼工作的,他只管執行所定義的命令。
make是如何工作的?
(1) make會在當前目錄下找名字叫“Makefile”或“makefile”。
(2) 如果找到,它會找文件中的第一個目標文件.o。
(3) 如果文件不存在,它會根據依賴關係找.s文件。
(4) 若.s文件不存在,make會在當前文件中找目標爲.s文件的依賴性即.i。
(5) 若.i文件不存在,根據依賴關係會找.c文件,當然.c文件時存在的啦。於是,make會生成一個.o文件,然後去執行文件。
這就是整個make的依賴性,make會一層一層去找文件的依賴關係,直到最終編譯出第一個目標文件。在找的過程中,如果出錯,如:最後被依賴的文件找不到,make會直接退出,並報錯,對於定義的命令的錯誤或者編譯不成功,make不管。make只管文件的依賴性,即如果找到依賴關係之後,冒號後邊的文件不存在,make也不工作。
清理目標文件的規則:
每一個Makefile中都應該寫一個清理目標文件(.o和執行文件)的規則,這不僅便於重編譯,也有利於保持文件的清潔。
.PHONY:clean
clean:
rm -f 文件
.PHONY後邊的clean事宜“僞目標”。在rm命令前面加上一個小減號的意思是,就算某些文件處理問題,不要管,繼續做後邊的事情。不要將clean的規則放到文件的開頭,不然出成爲make的默認目標。
clean從來都放在文件的最後
proc.c文件
注:fflush(stdout):清空輸出緩衝區,並把緩衝區內容輸出
Makefile文件
結果: