g++和gcc的比较
来源:互联网 发布:淘宝网一元秒杀专区 编辑:程序博客网 时间:2024/06/08 05:16
1、对于.c后缀的文件,gcc把它当做是C程序;g++当做是C++程序;
2、对于.cpp后缀的文件,gcc和g++都会当做c++程序。
3、编译阶段,g++会调用gcc(也就是说);
4、连接阶段,通常会用g++来完成,这是因为gcc命令不能自动和c++程序使用的库连接。
gcc可以用来编译c++但是它不会自动调用链接的c++库,你需要自己手动链接,使用如下命令: gcc -lstdc++ main.cpp。g++则会自动调用链接的c++库。
gcc可以根据后缀名为.c或.cpp分别按c程序和c++程序来编译;但是g++无论是.c或.cpp都统一按c++程序来编译。
而且g++在编译的过程中,其实是调用gcc按照c++程序来编译的。即编译工作最终都是由gcc来完成的。
对于c++程序,因为gcc命令不能自动和C++程序使用的库联接,需要自己手动链接c++库,所以链接可以用g++或者gcc -lstdc++。也即是说c++程序,也可以用gcc来链接。
但是gcc在编译c程序的时候,它会自动链接c库的。
误区一:gcc只能编译c代码,g++只能编译c++代码
两者都可以,但是请注意:
1.后缀为.c的,gcc把它当作是C程序,而g++当作是c++程序;后缀为.cpp的,两者都会认为是c++程序,注意,虽然c++是c的超集,但是两者对语法的要求是有区别的。C++的语法规则更加严谨一些。
2.编译阶段,g++会调用gcc。对于c++代码,可以用gcc或g++来编译,二者等价的。
3 链接阶段,因为gcc命令不能自动和C++程序使用的库联接,所以通常用g++来完成链接。一般为了方便,干脆编译和链接都用g++了。这就给人一种错觉,好像cpp程序只能用g++编译链接似的。
误区二:gcc不会定义__cplusplus宏,而g++会
实际上,这个宏只是标志着编译器将会把代码按C还是C++语法来解释,如上所述,如果后缀为.c,并且采用gcc编译器,则该宏就是未定义的,否则,就是已定义。
误区三:编译只能用gcc,链接只能用g++
严格来说,这句话不算错误,但是它混淆了概念,应该这样说:编译可以用gcc/g++,而链接可以用g++或者gcc -lstdc++。因为gcc命令不能自动和C++程序使用的库联接,所以通常使用g++来完成联接。但在编译阶段,g++会自动调用gcc,二者等价。
- g++和gcc的比较
- g++和gcc的比较
- gcc和g++的比较
- gcc和g++的比较
- g++和gcc的比较
- g++和gcc的比较
- gcc 和g++的比较分析
- g++和gcc的比较 与参数分析
- GCC的gcc和g++区别
- gcc 、 g++ 、 mingw比较
- gcc与g++比较
- gcc与g++比较
- gcc和g++的区别
- gcc和g++的区别
- gcc和g++的区别
- g++和gcc的误区
- gcc和g++的区别
- gcc和g++的区别
- LA 2512 —— Art Gallery(半平面交)
- [LeetCode] Rotate Image
- 用sql怎么表示上个月26号到本月25号这个时间段
- TRUNCATE TABLE
- i2c bus
- g++和gcc的比较
- 聚焦应用开发 2014年微信开发者大会即将召开
- 怎样在VS2010中打开VS2012的项目
- location.href提交中文参数在action中获取到为乱码
- ios网络编程(http、socket)
- PB通用的编程规范
- java socket通信
- opencv之显示图像
- IO设备的控制器 适配器