网络推广网站河南,wordpress 栏目设置,成都科技网站建设费用,绵阳网站建设怎么做gcc g现在是gnu中最主要和最流行的c c编译器 。 g是c的命令#xff0c;以.cpp为主#xff0c;对于c语言后缀名一般为.c。这时候命令换做gcc即可。其实是无关紧要的。 其实编译器是根据gcc还是g来确定是按照C标准还是C标准编译链接。 下面以Test.cpp为例#x…gcc g现在是gnu中最主要和最流行的c c编译器 。 g是c的命令以.cpp为主对于c语言后缀名一般为.c。这时候命令换做gcc即可。其实是无关紧要的。 其实编译器是根据gcc还是g来确定是按照C标准还是C标准编译链接。 下面以Test.cpp为例 命令 g Test.cpp 功能生成默认为a.exe的文件这个过程包含了编译和链接。 再说下-o命令-o命令表示输出的意思gcc/g命令是非常灵活的你不指定输出的文件名的时候默认生成的是.exe文件。 你要输出Test.exe的话可以用g -o Test.exe Test.cpp。-o命令是输出的意思这样就输出了Test.exe。 gcc/g在执行编译工作的时候总共需要以下几步: [cpp] view plaincopyprint? span stylefont-family:Microsoft YaHei;font-size:16px; /************************* Test.cpp *************************/ #include IOSTREAM static int t 1; #define T 9 using namespace std; typedef int Status; int main() { Status i 1; cout T * i endl; //Test Cout return 0; }/spanspan stylefont-family: Microsoft YaHei; font-size: 18px; /span 1.预处理,生成.i的文件[预处理器cpp] 命令g -E Test.cpp Test.i 功能输出预处理后的文件linux下以.i为后缀名。只激活预处理,这个不生成文件,你需要把它重定向到一个输出文件里 。这一步主要做了这些事情宏的替换还有注释的消除还有找到相关的库文件。用编辑器打开Test.i会发现有很多很多代码你只需要看最后部分就会发现预处理做了宏的替换还有注释的消除可以理解为无关代码的清除。下面是Test.i文件的最后部分可以看见宏的替换和注释的消除。 [cpp] view plaincopyprint? span stylefont-family:Microsoft YaHei;font-size:16px;# 5 Test.cpp 2 static int t 1; using namespace std; typedef int Status; int main() { Status i 1; cout 9 * i endl; return 0; }/span 2.将预处理后的文件不转换成汇编语言,生成文件.s[编译器egcs] 命令:g -S Test.cpp 功能:会生成Test.s文件.s文件表示是汇编文件用编辑器打开就都是汇编指令。 3.有汇编变为目标代码(机器代码)生成.o的文件[汇编器as] 命令:g -c Test.cpp 功能.o是GCC生成的目标文件除非你是做编译器和连接器调试开发的否则打开这种.o没有任何意义。二进制机器码一般人也读不了。 4.连接目标代码,生成可执行程序[链接器ld] 命令g Test.o -L F:\vs2008\VC\include\iostream 功能将.o文件与所需的库文件链接整合形成.exe文件这就是可执行文件。-L 表示链接这里我后面写的是绝对路径相对各人电脑不同 在上面各个步骤中你可以用-o命令输出你自己想要的各种名字。比如最后一个命令用下面的输出Test.exe 你可以g Test.o -o Test.exe -L F:\vs2008\VC\include\iostream 写了上面的就希望能够理解整个源文件是怎么变成可执行文件的gcc/g确实是很给力的啊····(*^__^*)