g 和 gcc 有什么区别?

新手上路,请多包涵

g++和gcc有什么区别?其中哪一个应该用于一般的 c++ 开发?

原文由 Brian R. Bondy 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 477
2 个回答

gccg++ 是 GNU 编译器 _集合_(曾是 GNU _C 编译器_)的编译器驱动程序。

即使它们根据文件类型自动确定要调用的后端( cc1 cc1plus …),除非用 -x language 覆盖,它们还是有一些区别.

它们的默认值可能最重要的区别是它们自动链接到哪些库。

根据GCC的在线文档 链接选项g++是如何被调用 的, g++ 相当于 gcc -xc++ -lstdc++ -shared-libgcc (第一个是编译器选项,第二个两个是链接器选项)。这可以通过运行 -v 选项来检查(它显示正在运行的后端工具链命令)。

原文由 Mike F 发布,翻译遵循 CC BY-SA 4.0 许可协议

我在 linux 系统中测试 gcc 和 g++。通过使用 MAKEFILE,我可以定义“GNU make”使用的编译器。我使用“C plus plus”的所谓“动态内存”定位功能进行了测试:

 int main(){

int * myptr = new int;
* myptr = 1;
printf("myptr[0] is %i\n",*myptr);
return 0;
}

我的电脑上只有g++可以编译成功,而gcc会报错

undefined reference to `operator new(unsigned long)'

所以我自己的结论是gcc并不完全支持“C plus plus”。 似乎为 C++ 源文件选择 g++ 是一个更好的选择。

原文由 magicmax 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题