使用命令"man g++",获取的到内容如下:
SYNOPSIS gcc [-c|-S|-E] [-std=standard] [-g] [-pg] [-Olevel] [-Wwarn...] [-pedantic] [-Idir...] [-Ldir...] [-Dmacro[=defn]...] [-Umacro] [-foption...] [-mmachine-option...] [-o outfile] [@file] infile... Only the most useful options are listed here; see below for the remainder. g++ accepts mostly the same options as gcc.
-c
只激活预处理,编译,和汇编,也就是他只把程序做成obj文件
例子用法:
g++ -c hello.c
他将生成.o的obj文件
-S
只激活预处理和编译,就是指把文件编译成为汇编代码。
例子用法
g++ -S hello.c
他将生成.s的汇编代码,你可以用文本编辑器察看
-E
只激活预处理,这个不生成文件,你需要把它重定向到一个输出文件里面.
例子用法:
g++ -E hello.c
> pianoapan.txt
g++ -E hello.c | more
慢慢看吧,一个hello word
也要与处理成800行的代码
-g
指示编译器,在编译的时候,产生调试信息。
-Idir
在你是用#include"file"的时候,gcc/g++会先在当前目录查找你所制定的头文件,如果没有找到,他回到缺省的头文件目录找,如果使用-I制定了目录,他会先在你所制定的目录查找,然后再按常规的顺序去找.
对于#include<file>,gcc/g++会到-I制定的目录查找,查找不到,然后将到系统的缺省的头文件目录查找.
-Ldir
制定编译的时候,搜索库的路径。比如你自己的库,可以用它制定目录,不然编译器将只在标准库的目录找。这个dir就是目录的名称。
-o
制定目标名称,缺省的时候,gcc 编译出来的文件是a.out,很难听,如果你和我有同感 ,改掉它,哈哈
例子用法:
g++ -o hello.exe hello.c (哦,windows用习惯了)
g++ -o hello.asm
-S hello.c
查考资料:GCC 参数详解
完。
原文:http://www.cnblogs.com/liyou-blog/p/3680348.html