gcc/g++在执行编译工作的时候,总共需要4步
⒈预处理,生成.i的文件[预处理器cpp]
⒉将预处理后的文件转换成汇编语言,生成文件.s[编译器egcs]
《参数详解》
-x language filename
设定文件所使用的语言,使后缀名无效,对以后的多个有效。也就是根据约定C语言的后缀名称是.c的,而C++的后缀名是.C或者.cpp,如果
你很个性,决定你的C代码文件的后缀名是.pig 哈哈,那你就要用这个参数,这个参数对他后面的文件名都起作用,除非到了下一个参数
的使用。
eg:g++ -x c++ hello.pig
-x none filename(关掉上一个选项,也就是让gcc根据文件后缀名自动识别文件类型)
eg:g++ -x c++ hello.pig -x none hello2.cpp
-c
只激活预处理,编译和汇编,也就是只生成obj文件
eg:g++ -c hello.cpp
-S
只激活预处理和编译,就是只把文件编译成汇编代码
eg:g++ -S hello.cpp
-E
只激活预处理,这个不生成文件,需把它重定向到一个输出文件中。
eg:g++ -E hello.cpp > hello.txt
eg:g++ -E hello.cpp | more (命令行中查看)
-o制定 目标名称,缺省的g++编译出来的文件是a.out
eg:g++ -o hello hello.cpp
eg:g++ hello.cpp -o hello
-O0,-O1,-O2,-O3
编译器优化选项的4个级别,-O0表示没有优化,-O1为缺省值,依次递增