我們這次依舊是學習Unix操作系統的知識。在Unix操作系統中,實現C源程序到可執行文件的這一轉換過程的工具是cc。在大多數系統中cc實際上是一個shell命令文件。有些Unix操作系統中的C編譯程序可能並不叫cc而是其它的一個什麼名稱,如Sun工作站上常用的gcc等等。但這些都無關緊要。
大多數Unix操作系統中C編譯命令的用法基本上都是類似的。我們這裡介紹的將以SVR4上的C編譯系統為基礎。
Unix操作系統 cc基本用法
一般我們只需要將Unix操作系統C源程序的名字寫在CC命令行中,cc即可對這些源文件(.c文件)進行編譯。如果這些Unix操作系統源文件中都沒有main()函數的定義,那麼cc將只能生成與各源文件相對應的目標文件(.o文件)。如果某個源文件中有關於main()函數的定義,則將把所有目標文件鏈接起來生成相應的可執行文件。缺省的情況下這個可執行文件的名字將是a.out。
例如,假定myprog.c是一個包含有main()函數定義的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操作系統此程序中的錯誤(設計錯誤)我們暫不理會。以後我們介紹程序調試時再回過頭來看看如何排除這個錯誤。