gcc编译

gcc编译器编译过程:

   预处理器         编译器       汇编器         链接器 

源程序----------->被修改的源程序----------->汇编程序---------->可重定位目标文件------->可执行目标程序

hello.c(文本) hello.i(文本)    hello.s(文本)     hello.o(二进制)   hello(二进制)

预处理器:读取头文件,把头文件内容插入到程序文本中          

编译器:将源程序翻译成汇编语言程序                  

汇编器:将汇编语言程序翻译成机器语言指令,合并打包成可重定位目标程序

链接器:合并处理.o文件,得到可执行目标文件 (与库文件*.o 和其它.o文件进行链接)

gcc : -o选项 用于指定输出可执行文件名  (若不用-o指定文件名,则默认生成可执行程序的文件名为a.out) 

    gcc -o hello hello.c

        -c选项 表示只编译源文件,但不链接,生成可重定位目标文件(.o文件)

    gcc -c hello.c   将只生成hello.o文件

   -L选项 指定编译器寻找函数库的位置(非标准位置)

   -l 选项 指定函数库文件

    gcc -o hello hello.c -L . -l foo  编译器在当前目录下寻找函数库,并且指定使用libfoo.a的函数库

   -I 选项 用来标志保存头文件的非标准位置

    gcc -I /usr/dir1/include hello.c  编译器不仅在标准位置,也在/usr/dir1/include目录中查找hello.c中包含的头文件。

posted @ 2017-01-25 22:38  Carrie_0173  阅读(129)  评论(0编辑  收藏  举报