Unix操作系統(tǒng)常用選項(xiàng)
Unix操作系統(tǒng)中,cc命令還提供了其他許多有用的命令行選項(xiàng)。借助于這些選項(xiàng)我們可以對(duì)編譯過程進(jìn)行進(jìn)一步的控制,如使cc只完成某些階段的編譯工作,指定對(duì)頭文件的搜索目錄,指定對(duì)代碼進(jìn)行優(yōu)化,指定在代碼中加入一些供調(diào)試程序所用的信息,等等。下面我們分別討論這些問題。
1.Unix操作系統(tǒng)僅生成目標(biāo)文件
如果只想生成源文件的目標(biāo)代碼而不對(duì)這些代碼進(jìn)行鏈接,可以在cc命令行中加上-C選項(xiàng)。此時(shí)編譯系將只生成與各源文件相對(duì)應(yīng)的.o文件(目標(biāo)文件)。
如:
$ cc -c myprog.c myfunc.s
將生成同myprog.c和myfunc.s相對(duì)應(yīng)的目標(biāo)文件myprog.o和myfunc.o。
2.Unix操作系統(tǒng)頭文件搜索路徑
當(dāng)用戶在C源程序中用# include指令包含了某個(gè)頭文件時(shí),根據(jù)文件名指定方法的不同,C編譯系統(tǒng)將在不同的目錄下去尋找指定的頭文件:
在用尖括號(hào)(<>;)指定頭文件名時(shí),預(yù)處理程序?qū)⒃赨nix操作系統(tǒng)中存放頭文件的標(biāo)準(zhǔn)位置(通常是/usr/include目錄)尋找指定的頭文件。
在用雙引號(hào)(“”)指定投文件名時(shí),預(yù)處理程序?qū)⑾仍赨nix操作系統(tǒng)包含此頭文件的C源程序所在的目錄中(一般為當(dāng)前目錄),去查找該頭文件。找不到時(shí)再到標(biāo)準(zhǔn)目錄下去查找。在對(duì)于那些頭文件既不在標(biāo)準(zhǔn)位置,又不在與C源程序同一目錄時(shí)的情況怎么辦呢?
為此,CC命令提供了-I(Include)選項(xiàng),以供用戶自己指定頭文件所在地目錄。例如,對(duì)于myfunc.c和myprog.c中所包含的頭文件myprog.h,我們假定其后來被放在目錄$HOME/include目錄下,而這兩個(gè)C文件則被放在$HOME/cfile目錄下。此時(shí)在$HOME/cfile目錄下對(duì)這兩個(gè)C文件進(jìn)行編譯時(shí),可使用如下命令:
$ cc -I #HOME/include myprog.c myfunc.c
此時(shí)對(duì)于這兩個(gè)C文件中的#include "myprog.h",預(yù)處理程序?qū)⑾仍?HOME/cfile目錄下,然后再$HOME/include目錄下,***再Unix操作系統(tǒng)標(biāo)準(zhǔn)位置查找myprog.h。-I選項(xiàng)也能改變那些用尖括號(hào)(<>指定的頭文件的搜索順序,此時(shí)預(yù)編譯程序?qū)⑹紫仍?I指定的目錄下,然后才在標(biāo)準(zhǔn)位置搜索。
-I選項(xiàng)可以多次重復(fù)使用。這樣我們將能夠指定多個(gè)非標(biāo)準(zhǔn)的頭文件目錄。由于用匯編語言進(jìn)行編程是一件效率比較低的工作,用此種方法可以預(yù)期將獲得比較高的效率。
關(guān)于Unix操作系統(tǒng)的知識(shí),這次,我們就講解到這里了。希望大家能夠好好的學(xué)習(xí)Unix操作系統(tǒng)的知識(shí)。
【編輯推薦】