(转)g++的使用相关

gcc and g++分别是GNU的c & c++编译器
gcc/g++在执行编译工作的时候,总共需要4步
⒈预处理,生成.i的文件[预处理器cpp]
⒉将预处理后的文件转换成汇编语言,生成文件.s[编译器egcs]
⒊由汇编变为目标代码(机器代码)生成.o的文件[汇编器as]
⒋连接目标代码,生成可执行程序[链接器ld]

[参数详解]
-x language filename
设定文件所使用的语言,使后缀名无效,对以后的多个有效.
可以使用的参数:
`c',`objective-c',`c-header',`c++',`cpp-output',
`assembler',and `assembler-with-cpp'.
 
-c
只激活预处理,编译,和汇编,也就是他只把程序做成obj文件.
生成后缀为.o的obj文件.
 
-S
只激活预处理和编译,就是指把文件编译成为汇编代码。
生成后缀为.s的汇编代码文件.
 
-E
只激活预处理,这个不生成文件,你需要把它重定向到一个输出文件里
面.
例子用法:
gcc -E hello.c > pianoapan.txt
gcc -E hello.c | more
慢慢看吧,一个hello word 也要与处理成800行的代码
 
-o
制定目标名称,缺省的时候,gcc 编译出来的文件是a.out
 
-include file
包含某个代码,简单来说,就是便以某个文件,需要另一个文件的时候,就可以
用它设定,功能就相当于在代码中使用#include<filename>
 

-Idir
在你是用#include"file"的时候,gcc/g++会先在当前目录查找你所制定的头
文件,如果没有找到,他回到缺省的头文件目录找,如果使用-I制定了目录,他
回先在你所制定的目录查找,然后再按常规的顺序去找.
对于#include<file>,gcc/g++会到-I制定的目录查找,查找不到,然后将到系
统的缺省的头文件目录查找

-nostdinc
使编译器不再系统缺省的头文件目录里面找头文件,一般和-I联合使用,明确
限定头文件的位置


-nostdin C++
规定不在g++指定的标准路经中搜索,但仍在其他路径中搜索,.此选项在创建
libg++库使用


-C
在预处理的时候,不删除注释信息,一般和-E使用,有时候分析程序,用这个很
方便的


-M
生成文件关联的信息。包含目标文件所依赖的所有源代码
你可以用gcc -M hello.c来测试一下,很简单。


-MM
和上面的那个一样,但是它将忽略由#include<file>;造成的依赖关系。


-MD
和-M相同,但是输出将导入到.d的文件里面


-MMD
和-MM相同,但是输出将导入到.d的文件里面

 
 
 
 
 
posted @ 2013-03-29 21:18  mzorro  阅读(135)  评论(0编辑  收藏  举报