g ++和gcc有什么区别?

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


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

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

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

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


GCC:GNU编译器集合

  • 推荐人使用GNU编译器支持的所有不同语言。
  • gcc:GNU C编译器
    g ++:GNU C ++编译器

    主要区别:

  • gcc将分别编译为:* .c / * .cpp文件,分别为C和C ++。
  • g ++将编译:* .c / * .cpp文件,但它们都将被视为C ++文件。
  • 另外如果你使用g ++来链接目标文件,它会自动链接到std C ++库(gcc不会这样做)。
  • gcc编译C文件的预定义宏较少。
  • gcc编译* .cpp和g ++编译* .c / *。cpp文件有一些额外的宏。
  • 编译* .cpp文件时额外的宏:

    #define __GXX_WEAK__ 1
    #define __cplusplus 1
    #define __DEPRECATED 1
    #define __GNUG__ 4
    #define __EXCEPTIONS 1
    #define __private_extern__ extern
    

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

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

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

    链接地址: http://www.djcxy.com/p/2457.html

    上一篇: What is the difference between g++ and gcc?

    下一篇: based sin approximation literature always use this formula when another formula seems to make more sense?