g++和gcc有什么区别?其中哪一个应该用于一般的 c++ 开发?
原文由 Brian R. Bondy 发布,翻译遵循 CC BY-SA 4.0 许可协议
g++和gcc有什么区别?其中哪一个应该用于一般的 c++ 开发?
原文由 Brian R. Bondy 发布,翻译遵循 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 许可协议
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.4k 阅读
1 回答1.6k 阅读✓ 已解决
gcc
和g++
是 GNU 编译器 _集合_(曾是 GNU _C 编译器_)的编译器驱动程序。即使它们根据文件类型自动确定要调用的后端(
cc1
cc1plus
…),除非用-x language
覆盖,它们还是有一些区别.它们的默认值可能最重要的区别是它们自动链接到哪些库。
根据GCC的在线文档 链接选项 和 g++是如何被调用 的,
g++
相当于gcc -xc++ -lstdc++ -shared-libgcc
(第一个是编译器选项,第二个两个是链接器选项)。这可以通过运行-v
选项来检查(它显示正在运行的后端工具链命令)。