当前位置: 首页 > 知识库问答 >
问题:

G++和GCC有什么区别?

后烨煜
2023-03-14

G++和GCC有什么区别?其中哪一个应该用于一般的C++开发?

共有3个答案

韩英锐
2023-03-14

对于C++,应该使用G++。

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

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

田化
2023-03-14

gcc:GNU编译器集合

  • 引用GNU编译器支持的所有不同语言。

gcc:GNU C ;编译器
G++:GNU C++编译器

主要区别:

  1. gcc将分别以C和C++的形式编译:*.C\*.cpp文件。
  2. G++将编译:*.c\*.cpp文件,但它们都将被视为C++文件。
  3. 另外,如果您使用g++链接对象文件,它将自动链接到标准C++库中(gcc执行此操作)。
  4. gcc编译C文件的预定义宏较少。
  5. gcc编译*.cppg++编译*.c\*.cpp文件有一些额外的宏。

编译*.cpp文件时的额外宏:

#define __GXX_WEAK__ 1
#define __cplusplus 1
#define __DEPRECATED 1
#define __GNUG__ 4
#define __EXCEPTIONS 1
#define __private_extern__ extern
容柏
2023-03-14

gccg++是GNU编译器集合(以前只是GNU C编译器)的编译器驱动程序。

尽管它们根据文件类型自动确定要调用哪些后端(CC1CC1plus...),但它们还是有一些区别,除非用-X语言重写。

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

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

 类似资料:
  • 发展至今(2020 年 6 月份),GCC 编译器已经更新至 10.1.0 版本,其功能也由最初仅能编译 C 语言,扩增至可以编译多种编程语言,其中就包括 C++ 。 除此之外,当下的 GCC 编译器还支持编译 Go、Objective-C,Objective-C ++,Fortran,Ada,D 和 BRIG(HSAIL)等程序,甚至于 GCC 6 以及之前的版本还支持编译 Java 程序。但本

  • 当我编译我的项目并检查运行所使用的资源时,大CPU/内存猪有时被称为,有时被称为。两者之间有什么区别,我是否应该直接调用?

  • 当使用gcc或Clang编译C源代码时,我总是使用标志来生成gdb的调试信息。 gcc-g-o helloworld. c 我注意到有些人推荐使用。和标志之间有什么区别?和之间也有区别吗?

  • 本文向大家介绍关于g++和gcc的相同点和区别详解,包括了关于g++和gcc的相同点和区别详解的使用技巧和注意事项,需要的朋友参考一下 gcc和g++的区别和联系 gcc和g++都是GNU(一个组织)的编译器。 1、对于.c后缀的文件,gcc把它当做是C程序;g++当做是C++程序; 2、对于.cpp后缀的文件,gcc和g++都会当做c++程序。 3、编译阶段,g++会调用gcc; 4、连接阶段,

  • 问题内容: GCC / G ++的宏可以区分Linux和Mac OSX? 问题答案: 下次您要检出平台上GCC支持的预定义宏时,请使用标志运行预处理器。它将列出系统上所有可用的预定义宏。例如:

  • 问题内容: 两者都意味着空间,但是有什么区别吗? 问题答案: 一个是不间断空间,另一个是常规空间。不间断的空格表示该行不应在该点处换行,就像它不会在一个单词的中间换行一样。 此外,正如斯文德(Svend)在其评论中指出的那样,不间断的空间不会崩溃。

  • 本文向大家介绍<%# %> 和 <% %> 有什么区别?相关面试题,主要包含被问及<%# %> 和 <% %> 有什么区别?时的应答技巧和注意事项,需要的朋友参考一下 答:<%# %>表示绑定的数据源 <%%>是服务器端代码块  

  • 在任何人告诉我查找旧答案或RTFM之前,请注意我已经这样做了,所以请在指示我查找其他地方之前阅读详细信息。 我已经确定,优化级别的差异并不像为更高的优化级别启用了一些不同类型的优化标志那么简单。 例如,我首先通过以下步骤发现了O0和O1的优化标志的差异: 这给了我一个O1对O0启用的各种优化标志的列表。 然后,我用-O0编译了代码,但是添加了O1对O0启用的所有单独的优化标志,因为结果应该和O1一