linux下命令行下编译c程式

2008-02-23 05:41:36来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折


  C 是任何版本的UNIX上的系统语言.

  C 在过去的二十年中有了很大的发展. 在80年代末期美国国家标准协会(American NationalStandards Institute)发布了一个被称为 ANSI C 的 C 语言标准.这更加确保了将来在不同平台上的 C 的一致性. 在80年代还出现了一种 C 的面向对象的扩展称为 C .

  Linux 上可用的 C 编译器是 GNU C 编译器, 他建立在免费软件基金会的编程许可证的基础上, 因此能够自由发布. 您能在 Linux 的发行光盘上找到他.

  随 Slackware Linux 发行的 GNU C 编译器(GCC)是个全功能的 ANSI C 兼容编译器. 假如您熟悉其他操作系统或硬件平台上的一种 C 编译器, 您将能很快地掌控 GCC. 这和java在命令行下

  编译也很类似我们将在下面介绍如何使用 GCC 和一些 GCC 编译器最常用的选项.

  格式 gcc [option] [sourcefilename]

  gcc的选项十分繁多,大约有上百中,但是平时常用的不是很多,我们将要介绍一些常用的选项:

  最简单的是:gcc hello.c

  默认的情况下将生成a.out的可执行性文档,您只需要在终端上输入./a.out就能够看到执行的结果.

  假如您想指定生成目标文档的名字那么您能够加上 -o选项,命令如下:

  gcc -o hello hello.c

  gcc也允许您只编译源程式,这样能够只检查编译时刻的错误,有利也调试程式,用-c选项能够达到这个目的

  命令如下:

  gcc -c hello hello.c

  结果生成了一个中间代码hello.o文档

  编译选项告诉 GCC 在为 C 代码产生了汇编语言文档后停止编译. GCC 产生的汇编语言文档的缺省扩展名是 .s . -E 选项指示编译器仅对输入文档进行预处理. 当这个选项被使用时, 预处理器的输出被送到标准输出而不是储存在文档里.

  之后您能够对上述中间代码进行链接运行,使用命令:

  gcc -o hello.out hello.c

  优 化 选 项

  当您用 GCC 编译 C 代码时, 他会试着用最少的时间完成编译并且使编译后的代码易于调试. 易于调试意味着编译后的代码和源代码有同样的执行次序, 编译后的代码没有经过优化.有很多选项可用于告诉 GCC 在耗费更多编译时间和牺牲易调试性的基础上产生更小更快的可执行文档. 这些选项中最典型的是-O 和 -O2 选项.

  -O 选项告诉 GCC 对源代码进行基本优化. 这些优化在大多数情况下都会使程式执行的更快. -O2 选项告诉 GCC 产生尽可能小和尽可能快的代码. -O2 选项将使编译的速度比使用 -O时慢. 但通常产生的代码执行速度会更快.

  GCC 支持数种调试和剖析选项. 在这些选项里您会最常用到的是 -g 和 -pg 选项.

  选项告诉 GCC 产生能被 GNU 调试器使用的调试信息以便调试您的程式. GCC 提供了一个很多其他 C 编译器里没有的特性, 在 GCC 里您能使 -g 和 -O (产生优化代码)联用. 这一点很有用因为您能在和最终产品尽可能相近的情况下调试您的代码. 在您同时使用这两个选项时您必须清楚您所写的某些代码已在优化时被 GCC 作了改变. 关于调试 C 程式的更多信息请看下一节"用 gdb 调试 C 程式" .

  如下命令 gcc -c -g hello.c

  pg 选项告诉 GCC 在您的程式里加入额外的代码, 执行时, 产生 gprof 用的剖析信息以显示您的程式的耗时情况.

  关于ggc的周详信息可用man gcc来查看

  


标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: SUN Solaris上安装GCC编译器

下一篇: 网络编程之-原始套接字

热门词条
热门标签