g++和gcc有什么区别?

26 浏览
0 Comments

g++和gcc有什么区别?

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

admin 更改状态以发布 2023年5月22日
0
0 Comments

GCC: GNU编译器集合

  • 指的是GNU编译器支持的所有不同语言。

gcc: GNU C编译器
g++: GNU C++编译器

主要的区别:

  1. gcc会将*.c\*.cpp文件分别作为C和C++编译。
  2. g++会将*.c\*.cpp文件全部作为C++文件编译。
  3. 而且,如果你使用g++链接对象文件,他会自动链接std 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

0
0 Comments

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

尽管它们根据文件类型自动确定调用哪些后端(cc1 cc1plus等),除非使用-x语言进行覆盖,否则它们有一些差异。

它们默认设置中最重要的不同可能是它们自动链接的库。

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

0