【Linux】GCC编译器

  【简介】

  GCC是Linux下的编译工具集,是GNU Compiler Collection的缩写,包含gcc g++ 等编译器。GCC工具集不仅能编译C/C++语言,其他例如Object-c、Pascal、Fortran、Java、Ada等语言进行编译。GCC在可以根据不同的硬件平台进行编译,即能进行交叉编译,在A平台上编译B平台上的程序,支持常见的X86、ARM、PowerPC、mips等,及Linux、windows等软件平台。C语言的编译命令为gcc,C++的编译命令为g++。

  【头文件和库文件】

  进行程序编译的时候,头文件路径和库文件路径是编译器默认查找的地方,如下:

  头文件:

  按先后顺序查找如下目录:

  /usr/local/include

  /usr/lib/gcc/i486-Linux-gnu/4.7/include

  /usr/include

  库文件:

  按先后顺序查找如下目录:

  /usr/lib//i486-Linux-gnu/4.7/...

  /lib/

  /usr/lib/

  【编译的过程】

  预编译——>编译和优化——>汇编——>链接

  【单个文件编译成执行文件】

  gcc 源文件名 。添加选项 “-o”可以指定可执行文件的名称。例:

$gcc -o test hello.c

  上面命令把hello.c源文件编译成可执行文件test。

  【编译成目标文件】-c

  目标文件是指经过编译器的编译生成的CPU可识别的二进制代码,因为没有进行链接,所以不能执行。

 

$gcc -c hello.c

  上面命令会生成名字为hello.o的目标文件

  也可以加上-o指定生成目标文件的名称:

$gcc -c -o test.o hello.c

  一次编译多个文件:

$gcc -c file1.c file2.c file3.c

  【多文件编译】

  可以使用一个命令编译,例如main.c使用string.c中的函数,可以一起编译生成一个可执行文件:

 

$gcc -o test string.c main.c

  也可以先编译,再链接:

$gcc -c string.c main.c
$gcc -o test string.o main.o

  【预处理】-E

  预处理过程将源文件中的头文件包含进源文件中,并且将头文件中定义的宏展开:

$gcc -E string.c

  以上命令生成预处理后的文件 string.i

  【编译成汇编语言】-S

$gcc -S string.c

  以上的命令生成汇编语言文件string.s

 

  

posted on 2016-05-05 21:55  看云  阅读(354)  评论(0编辑  收藏  举报

导航

http://home.cnblogs.com/group/topic/8550.html