只要提到``或``,gcc编译会报x86错误,这是什么情况?

21 浏览
0 Comments

只要提到``或``,gcc编译会报x86错误,这是什么情况?

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

admin 更改状态以发布 2023年5月21日
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