UNIX系统开发-CC命令.doc

UNIX系统开发-CC命令.doc

ID:62033969

大小:42.00 KB

页数:6页

时间:2021-04-15

UNIX系统开发-CC命令.doc_第1页
UNIX系统开发-CC命令.doc_第2页
UNIX系统开发-CC命令.doc_第3页
UNIX系统开发-CC命令.doc_第4页
UNIX系统开发-CC命令.doc_第5页
资源描述:

《UNIX系统开发-CC命令.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、UNIX系统开发-CC命令cc的基本用法在UNIX系统中,实现C源程序到可执行文件的这一转换过程的工具是cc。在大多数系统中cc实际上是一个shell命令文件。有些系统中的C编译程序可能并不叫cc而是其它的一个什么名称,如Sun工作站上常用的gcc等等。但这些都无关紧要。大多数系统中C编译命令的用法基本上都是类似的。我们这里介绍的将以SVR4上的C编译系统为基础。cc基本用法一般我们只需要将C源程序的名字写在CC命令行中,cc即可对这些源文件(.c文件)进行编译。如果这些源文件中都没有main()函数的定义,那么cc将只能生

2、成与各源文件相对应的目标文件(。o文件)。如果某个源文件中有关于main()函数的定义,则将把所有目标文件链接起来生成相应的可执行文件。缺省的情况下这个可执行文件的名字将是a。out.例如,假定myprog。c是一个包含有main()函数定义的C语言程序文件,其中代码如下:/**********************************************Anexamplesourcecodewitherrors**Name:myprog.c*******************

3、***************************/#include〈stdio.h〉#include〈ctype.h>#defineTESTOK1intTestInput(char*ValuInput){while(*ValueInput)if(!isdigit(*ValueInput))return(!TESTOK);elseValueInput++;return((100/atoi(ValueInput))?TESTOK:!TESTOK);}voidmain(intargc,char*

4、argv[]){inti;for(i=1;i〈argc;;i++)if(TestInput(argv[i])==TESTOK)printf("The%dthvalue’%s’tisOK!”,i,argv[i]);elseprintf("The%dthvalue'%s'tisBAD!”,i,argv[i]);}对于此程序中的错误(设计错误)我们暂不理会。下一章我们介绍程序调试时再回过头来看看如何排除这个错误。我们看到。在这个源程序文件中,定义了两个函数:TestInput()和main(),定义了一个宏T

5、ESTOK,同时包含了两个标准的头文件.为了把这个C程序转换成可执行文件,在shell提示符下输入:$ccmyprog。c在程序中没有任何语法错误的情况下,cc将在当前目录下生成一个名为a。out的可执行文件,如:$ccmyproc。c$ls-l—rwx—-————1yxzusers5812Aug3115:32a.out-rw-—----—1yxzusers716Aug3115:27myproc.c$还可以看到这里a.out是一个可执行文件。当然这个程序由于在设计上有些失误,我们现在还不能马上就带参数运行。但不带参数运行还是

6、可以的。只不过此时该程序什么都没有干,如:$a.out$在程序中我们通过main函数的两个参数argc和argv而使程序能够引用shell命令行参数;这是UNIX环境下一种常用的编程技术。在生成了a.out文件之后,我们自然可用mv命令将其修改为某个合适的名称。但更简单的方法是在cc命令行中加上-o选项,使cc直接将可执行文件写入到指定的文件中而不生成a.out文件,如:$cc—omyprogmyprog.c$ls—lmyprogtotal14—rwx—--—--1yxzusers5812Aug3115:34myprog

7、—rw----———1yxzusers716Aug3115:27myprog。c$我们看到,myprog这个文件除了文件名及修改时间同a。out不一样外,其他属性同a。out都是一摸一样的。这也说明了两者的等价性。在某个程序的源代码被存放到多个不同文件中的情况下,我们只需要在命令行中一一指定这多个C文件即可。例如,我们可以将上述myprog。c拆分为两个C文件和一个头文件(.h)如下:myprog.h#include#inclued〈ctype。h〉#defineTESTOK1myprog。c#incl

8、ude”myprog.h"voidmain(intargc,char*argv[]){inti;for(i=1;i〈argc;i++)if(TestInput(argv[i])==TESTOL)printf(”The%dthvalue’%s'tisok!",argv[1]);el

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。