歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux技術

linux 系統的 ctags 以及Makefile的應用

1.ctags(Linux代碼查看)

ctags -R :在當前目錄下建立索引。

ctrl + ]: 跳轉到函數或變量的定義處

ctrl + T : 跳轉至上級

2.Makefile的應用

會不會寫makefile,從一個側面說明了一個人是否具備完成大型工程的能力。

一般來說,無論是C、C++、還是 pas,首先要把源文件編譯成中間代碼文件,在Windows下也就是 .obj 文件,UNIX下 是 .o 文件,即 Object File,這個動作叫做編譯(compile)。然後再把大量的Object File合成執行文件,這個動作叫作鏈接(link)。

創建一個Makefile文件:

test:test.o

gcc -o test test.o(前面加@ 屏蔽輸出)

test.o:test.s

gcc -c test.s -o test.o

test.s:test.i

gcc -S test.i -o test.s

test.i:test.c

gcc -E test.c -o test.i

.PHONY:clean (作為偽目標)

clean:

rm -f test.o test.s test.i

創建一個test.c的小程序,用make指令去調用:

在這裡說一下Makefile是如何工作的:

1.make會在當前目錄下找名字叫“Makefile”或“makefile”的文件。

2.如果找到,它會找文件中的第一個目標文件(test),在上面的例子中,他會找到“test”這個文件,並把這個文件作為最終的目標文件。

3.如果“test”文件不存在,或是“test”所依賴的後面的 .o 文件的文件修改 時間要比"test"這個文件新,那麼,他就會執行後面所定義的命令來生成“test”這個文件。

4.如果“test”所依賴的.o文件也存在,那麼make會在當前文件中找目標為.o文件的依賴性,如果找到則再根據那一個規則生成.o文件。(這 有點像一個堆棧的過程)

5.當然,你的.c文件是存在的,於是make會生成 .o 文件,然後再用 .o 文件聲明make的終極任務,也就是執行文件“test”了。

清空目標文件:

每個Makefile中都應該寫一個清空目標文件(.o和執行文件)的規則,這不僅便於 重編譯,也很利於保持文件的清潔。這是一個“修養”。

一般的風格都是:

clean:

rm edit$(objects)

更為穩健的做法是:

.PHONY : clean

clean :

-rm edit$(objects)

.PHONY意思表示clean是一個“偽目標”。而在rm命令前面加了一個小減號的意思就是,也許某些文件出現問題,但不要管,繼續做後面的事。當然,clean的規則不要放在文件的開頭,不然,這就會變成make的默認目標,相信誰也不願意這 樣。不成文的規矩是——“clean從來都是放在⽂文件的最後”。

Copyright © Linux教程網 All Rights Reserved