网站大量收购闲置独家精品文档,联系QQ:2885784924

UNIX系统开发-CC命令..doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
UNIX系统开发-CC命令.

UNIX系统开发-CC命令 cc的基本用法 在UNIX系统中,实现C源程序到可执行文件的这一转换过程的工具是cc。在大多数系统中cc实际上是一个shell命令文件。有些系统中的C编译程序可能并不叫cc而是其它的一个什么名称,如Sun工作站上常用的gcc等等。但这些都无关紧要。大多数系统中C编译命令的用法基本上都是类似的。我们这里介绍的将以SVR4上的C编译系统为基础。 cc基本用法 一般我们只需要将C源程序的名字写在CC命令行中,cc即可对这些源文件(.c文件)进行编译。如果这些源文件中都没有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;iargc;;i++) if(TestInput (argv[i]) = =TESTOK) printf(The %dth value %s \tis OK! \n,i,argv[i]); else printf(The %dth value %s \tis BAD! \n ,i,argv[i]); } 对于此程序中的错误(设计错误)我们暂不理会。下一章我们介绍程序调试时再回过头来看看如何排除这个错误。 我们看到。在这个源程序文件中,定义了两个函数:TestInput()和main(),定义了一个宏TESTOK,同时包含了两个标准的头文件。为了把这个C程序转换成可执行文件,在shell提示符下输入: $cc myprog.c 在程序中没有任何语法错误的情况下,cc将在当前目录下生成一个名为a.out的可执行文件,如: $ cc myproc.c $ ls -l -rwx------ 1 yxz users 5812 Aug 31 15:32 a.out -rw------- 1 yxz users 716 Aug 31 15:27 myproc.c $ 还可以看到这里a.out是一个可执行文件。当然这个程序由于在设计上有些失误,我们现在还不能马上就带参数运行。但不带参数运行还是可以的。只不过此时该程序什么都没有干,如: $ a.out $ 在程序中我们通过main函数的两个参数argc和argv而使程序能够引用shell命令行参数;这是UNIX环境下一种常用的编程技术。 在生成了a.out文件之后,我们自然可用mv命令将其修改为某个合适的名称。但更简单的方法是在cc命令行中加上-o选项,使cc直接将可执行文件写入到指定的文件中而不生成a.out文件,如: $ cc -o myprog myprog.c $ ls -l myprog total 14 -rwx------ 1 yxz users 5812 Aug 31 15:34 myprog -rw------- 1 yxz users  716 Aug 31 15:27 myprog.c $ 我们看到,myprog这个文件除了文件名及修改时间同a.out不一样外,其他属性同a.out都是一摸一样的。这也说明了两者的等价性。 在某个程序的源代码被存放到多个不同文件中的情况下,我们只需要在命令行中一一指定这多个C文件即可。例如,我们可以将上述myprog.c拆分为两个C文件和一个头文件(.h)如下: myprog.h # include stdio.h # inclued ctype.h # define TESTOK 1 myprog.c #

文档评论(0)

xznh + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档