大多数人使用了很久的C语言,但是对gcc、CC、g++这些还是比较模糊,即便上网搜索也是模棱两可的资料,今天学习了总结下对gcc和g++的理解。
先来看这两者的区别:
1:gcc可以用来编译C语言和C++:但是gcc只能链接C库,不能链接C++库;
2:g++可以链接C++库,但是它是通过调用gcc来编译,因此:它也可以编译C和C++,但它能编译的条件是要先存在gcc。
其实gcc是C编译器;g++是C++编译器;linux下cc一般是一个符号连接,指向gcc;gcc和g++都是GUN(组织)的编译器。
由上学习了得出结论:
只有C程序,就只要gcc(它不能链接C++库,所以最终生成不了二进制可执行程序)
如果有C++程序,就要gcc和g++一起(因为g++要调用gcc来编译)。
测试过程如下:
1、测试环境:Centos 6.5 32位
2、查看安装:
或者(yum安装的是rpm包,也可以用rpm包的查看方式)。
3、写个C++程序:
使用用vim编辑器:
查看一下:
因为gcc链接不了C++库,所以一通的undefined:
从图可见,也没有结果生成:
4、改成g++来弄:
运行,看到打印东西了:
现在弄个C语言:
使用vim编辑器:
保存后查看源代码:
一开始只有:
使用gcc编译(它可以编译C并链接C库)
可见,成功生成了a.out
执行a.out:
因为C程序中没有换行,所以这里输出自然没换行,但这就是对了。