g++和gcc的区别
2017-08-02 23:17
211 查看
gcc/g++在执行编译工作的时候,总共需要4步
1.预处理,生成.i的文件[预处理器cpp]
2.将预处理后的文件转换成汇编语言,生成文件.s[编译器egcs]
3.有汇编变为目标代码(机器代码)生成.o的文件[汇编器as]
4.连接目标代码,生成可执行程序[链接器ld]
gcc和g++都是GNU(一个组织)的编译器。
1、对于.c后缀的文件,gcc把它当做是C程序;g++当做是C++程序;
2、对于.cpp后缀的文件,gcc和g++都会当做c++程序。
3、编译阶段,g++会调用gcc;
4、连接阶段,通常会用g++来完成,这是因为gcc命令不能自动和c++程序使用的库连接。
对于下面一段代码,分别创建main.c test.cpp
<1>用gcc编译main.c,生成main可执行文件
<2>用g++来编译main.c文件,生成mainc可执行文件
通过ls -l,查看文件详细信息,可以看到mainc比main的文件大!
<3>用g++来编译test.cpp文件,生成testc可执行文件
<4>用gcc来编译test.cpp文件,生成test可执行文件
链接出错了!gcc默认是不能编译C++文件的,gcc不能自动链接C++的标准库stdc++,如果要用gcc编译C++文件,要手动链接++标准库。
手动链接C++标准库,再试一次 !
可以看到,gcc默认不能编译C++代码,因为gcc不能自动链接C++标准库文件,手动链接库文件后,gcc按照C++方式处理程序。
通过ls
-l,查看文件详细信息,发现testc比test的文件稍微大一点!
现在编译代码时用gcc,更确切的说他应该是一个驱动程序。它会根据代码的后缀名来判断调用C编译器还是C++编译器
(g++)。如果代码是后缀是.c,gcc会调用C编译器,去链接C标准库。如果代码后缀是.cpp,gcc会调用C++编译器,链接C++标准库。
1.预处理,生成.i的文件[预处理器cpp]
2.将预处理后的文件转换成汇编语言,生成文件.s[编译器egcs]
3.有汇编变为目标代码(机器代码)生成.o的文件[汇编器as]
4.连接目标代码,生成可执行程序[链接器ld]
gcc和g++都是GNU(一个组织)的编译器。
1、对于.c后缀的文件,gcc把它当做是C程序;g++当做是C++程序;
2、对于.cpp后缀的文件,gcc和g++都会当做c++程序。
3、编译阶段,g++会调用gcc;
4、连接阶段,通常会用g++来完成,这是因为gcc命令不能自动和c++程序使用的库连接。
对于下面一段代码,分别创建main.c test.cpp
<1>用gcc编译main.c,生成main可执行文件
<2>用g++来编译main.c文件,生成mainc可执行文件
通过ls -l,查看文件详细信息,可以看到mainc比main的文件大!
<3>用g++来编译test.cpp文件,生成testc可执行文件
<4>用gcc来编译test.cpp文件,生成test可执行文件
链接出错了!gcc默认是不能编译C++文件的,gcc不能自动链接C++的标准库stdc++,如果要用gcc编译C++文件,要手动链接++标准库。
手动链接C++标准库,再试一次 !
可以看到,gcc默认不能编译C++代码,因为gcc不能自动链接C++标准库文件,手动链接库文件后,gcc按照C++方式处理程序。
通过ls
-l,查看文件详细信息,发现testc比test的文件稍微大一点!
现在编译代码时用gcc,更确切的说他应该是一个驱动程序。它会根据代码的后缀名来判断调用C编译器还是C++编译器
(g++)。如果代码是后缀是.c,gcc会调用C编译器,去链接C标准库。如果代码后缀是.cpp,gcc会调用C++编译器,链接C++标准库。
相关文章推荐
- [编译器] cc、gcc、g++、CC的区别概括
- 详解C/C++ 编译 g++ gcc 的区别
- Gcc和G++的区别
- g++ 和 gcc 的相同点和区别
- gcc与g++的区别
- gcc与g++有什么区别?
- cc、gcc、g++、CC的区别概括【转】
- gcc与g++区别
- g++和gcc的区别
- gcc和g++的区别【转自中国源码网】
- gcc和g++的区别(很详细的描述)
- gcc和g++的区别(常见的误解)
- gcc与g++的区别
- gcc和g++区别
- gcc和g++的区别
- gcc和g++的区别
- gcc和g++的区别(转载)
- g++和gcc的相同点和区别 [转]
- gcc与g++的区别
- gcc和g++的区别