中国教育在线 中国教育网 加入收藏 设为首页

Linux认证:GCC编程四过程

http://itpx.eol.cn  来源:  作者:网络转载  2011-07-05    

  Linux下GCC编程详解四个过程,如何要指定最终二进制可执行程序名,那么用-o选项来指定名称。比如需要生成执行程序hello.exe

  一、GCC快速入门

  Gcc指令的一般格式为:Gcc [选项] 要编译的文件 [选项] [目标文件]

  其中,目标文件可缺省,Gcc默认生成可执行的文件名为:编译文件。out

  我们来看一下经典入门程序“Hello World!”

  # vi hello.c

  #include 《stdlib.h》

  #include 《stdio.h》

  void main(void)

  {

  printf(“hello world!\r\n”);

  }

  用gcc编译成执行程序。

  #gcc hello.c

  该命令将hello.c直接生成最终二进制可执行程序a.out

  这条命令隐含执行了(1)预处理、(2)汇编、(3)编译并(4)链接形成最终的二进制可执行程序。这里未指定输出文件,默认输出为a.out.

  如何要指定最终二进制可执行程序名,那么用-o选项来指定名称。比如需要生成执行程序hello.exe

  那么

  #gcc hello.c -o hello.exe

  二、GCC的命令剖析——四步走

  从上面我们知道GCC编译源代码生成最终可执行的二进制程序,GCC后台隐含执行了四个阶段步骤。

  GCC编译C源码有四个步骤:

  预处理——》 编译 ——》 汇编 ——》 链接

  现在我们就用GCC的命令选项来逐个剖析GCC过程。

  1)预处理(Pre-processing)

  在该阶段,编译器将C源代码中的包含的头文件如stdio.h编译进来,用户可以使用gcc的选项“-E”进行查看。

  用法:#gcc -E hello.c -o hello.i

  作用:将hello.c预处理输出hello.i文件。

  [root]# gcc -E hello.c -o hello.i

  [root]# ls

  hello.c hello.i

  [root]# vi hello.i

  # 1 “hello.c”

  # 1 “《built-in》”

  # 1 “《command line》”

  # 1 “hello.c”

  # 1 “/usr/include/stdlib.h” 1 3

  # 25 “/usr/include/stdlib.h” 3

  # 1 “/usr/include/features.h” 1 3

  # 291 “/usr/include/features.h” 3

  # 1 “/usr/include/sys/cdefs.h” 1 3

  # 292 “/usr/include/features.h” 2 3

  # 314 “/usr/include/features.h” 3

  # 1 “/usr/include/gnu/stubs.h” 1 3

  # 315 “/usr/include/features.h” 2 3

  # 26 “/usr/include/stdlib.h” 2 3

  # 3 “hello.c” 2

  void main(void)

  {

  printf(“hello world!\r\n”);

  }

  2)编译阶段(Compiling)

推荐给好友    我要收藏    我要纠错    分享到

免责声明:

① 凡本站注明“稿件来源:中国教育在线”的所有文字、图片和音视频稿件,版权均属本网所有,任何媒体、网站或个人未经本网协议授权不得转载、链接、转贴或以其他方式复制发表。已经本站协议授权的媒体、网站,在下载使用时必须注明“稿件来源:中国教育在线”,违者本站将依法追究责任。

② 本站注明稿件来源为其他媒体的文/图等稿件均为转载稿,本站转载出于非商业性的教育和科研之目的,并不意味着赞同其观点或证实其内容的真实性。如转载稿涉及版权等问题,请作者在两周内速来电或来函联系。

内容推荐
eol.cn简介 | 联系方式 | 网站声明 | 京ICP证140769号 | 京ICP备12045350号 | 京公网安备 11010802020236号
版权所有 北京中教双元科技集团有限公司 EOL Corporation
Mail to: webmaster@eol.cn