Unix操作系統(tǒng) cc的基本用法
我們這次依舊是學習Unix操作系統(tǒng)的知識。在Unix操作系統(tǒng)中,實現(xiàn)C源程序到可執(zhí)行文件的這一轉(zhuǎn)換過程的工具是cc。在大多數(shù)系統(tǒng)中cc實際上是一個shell命令文件。有些Unix操作系統(tǒng)中的C編譯程序可能并不叫cc而是其它的一個什么名稱,如Sun工作站上常用的gcc等等。但這些都無關(guān)緊要。
大多數(shù)Unix操作系統(tǒng)中C編譯命令的用法基本上都是類似的。我們這里介紹的將以SVR4上的C編譯系統(tǒng)為基礎(chǔ)。
Unix操作系統(tǒng) cc基本用法
一般我們只需要將Unix操作系統(tǒng)C源程序的名字寫在CC命令行中,cc即可對這些源文件(.c文件)進行編譯。如果這些Unix操作系統(tǒng)源文件中都沒有main()函數(shù)的定義,那么cc將只能生成與各源文件相對應(yīng)的目標文件(.o文件)。如果某個源文件中有關(guān)于main()函數(shù)的定義,則將把所有目標文件鏈接起來生成相應(yīng)的可執(zhí)行文件。缺省的情況下這個可執(zhí)行文件的名字將是a.out。
例如,假定myprog.c是一個包含有main()函數(shù)定義的C語言程序文件,其中代碼如下:
- * An example source code with errors *
- * Name:myprog.c *
- #include <stdio.h>;
- #include <ctype.h>;
- # define TESTOK 1
- int TestInput(char * ValuInput)
- {while (* ValueInput)
- if (! isdigit(* ValueInput )) return (! TESTOK);
- else ValueInput + +;
- return ((100/atoi(ValueInput))? TESTOK:! TESTOK);
- }
- void main(int argc,char * argv[])
- {int i;
- for (i=1;i<argc;;i++)
- if(TestInput (argv) = =TESTOK)
- printf("The %dth value '%s' \tis OK! \n",i,argv);
- else
- printf("The %dth value '%s' \tis BAD! \n" ,i,argv);
- }
- 對于
Unix操作系統(tǒng)此程序中的錯誤(設(shè)計錯誤)我們暫不理會。以后我們介紹程序調(diào)試時再回過頭來看看如何排除這個錯誤。
【編輯推薦】