技术中心
 
 

Linux认证:Linux下GCC编程详解四个过程

   日期:2011-05-09     来源:帮考网    
核心提示:Linux认证:Linux下GCC编程详解四个过程,如何要指定最终二进制可执行程序名,那么用-o选项来指定名称。比如需要生成执行程序hello.exe

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

  一、GCC快速入门

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

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

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

  # vi hello.c

  #include

  #include

  void main(void)

  {

  printf("hello world!rn");

  }

  用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 ""

  # 1 ""

  # 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!rn");

  }

  2)编译阶段(Compiling)

 
标签: Linux GCC编程 详解
  
  
  
  
 
更多>同类技术
 
全年征稿 / 资讯合作
 
推荐图文
推荐技术
可能喜欢