g ++和gcc有什么区别?

2019/12/19 15:51
阅读数 324

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


#1楼

“GCC”是GNU Compiler Collection的常用简写术语。 这是编译器的最通用名称,以及强调编译C程序时使用的名称(缩写以前代表“GNU C编译器”)。

在引用C ++编译时,通常调用编译器“G ++”。 由于只有一个编译器,无论语言环境如何,将其称为“GCC”也是准确的; 但是,当重点是编译C ++程序时,术语“G ++”更有用。

你可以在这里阅读更多。


#2楼

gccg++是GNU Compiler Collection的编译器驱动程序(曾经只是GNU C编译器 )。

即使它们根据文件类型自动确定调用哪些后端( cc1 cc1plus ...),除非用-x language覆盖,否则它们会有一些差异。

默认情况下可能最重要的区别是它们自动链接的库。

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


#3楼

对于c ++,你应该使用g ++。

它是相同的编译器(例如GNU编译器集合)。 GCC或G ++只选择具有不同默认选项的不同前端。

简而言之:如果使用g ++,前端会告诉链接器您可能希望链接到C ++标准库。 gcc前端不会这样做(如果传递正确的命令行选项,它也可以与它们链接)。


#4楼

唯一值得注意的区别是,如果将.c传递给gcc,它将编译为C,而g ++将始终将其视为C ++。


#5楼

虽然gcc和g ++命令做的事情很相似,但g ++被设计成你调用编译C ++程序的命令。 它旨在自动做正确的事情。

在幕后,他们真的是同一个节目。 据我所知,两者都决定是根据文件扩展名将程序编译为C还是C ++。 两者都能够链接到C ++标准库,但只有g ++默认执行此操作。 因此,如果您有一个用C ++编写的程序,并不需要链接到标准库,那么gcc就会做正确的事情; 但是,g ++也是如此。 因此,没有理由不使用g ++进行一般的C ++开发。

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部