• gcc与g++


    我写过一篇这个文章, 介绍了 GCC 的整体架构

    孙孟越:GCC 的整体架构zhuanlan.zhihu.com图标

    GCC 是 GNU 编译器集合的意思, 对于用户能用的常用命令, 有 gcc 和 g++.

    无论是 gcc 还是 g++, 他们的定位都是 driver.

    driver 负责调用编译器(狭义), 把源码编译到汇编代码. 比如 C 语言的编译器(狭义)是 cc1, 而 C++ 语言的编译器(狭义)是 cc1plus.

    driver 再调用 as, 把汇编代码变成二进制代码. 最后调用 ld, 负责把二进制代码拼在一起.


    gcc 和 g++ 的区别无非就是调用的编译器不同, 并且传递给链接器的参数不同.

    具体而言

    g++ 会把 .c 文件当做是 C++ 语言 (在 .c 文件前后分别加上 -xc++-xnone, 强行变成 C++), 从而调用 cc1plus 进行编译.

    g++ 遇到 .cpp 文件也会当做是 C++, 调用 cc1plus 进行编译.

    g++ 还会默认告诉链接器, 让它链接上 C++ 标准库.

     

    gcc 会把 .c 文件当做是 C 语言. 从而调用 cc1 进行编译.

    gcc 遇到 .cpp 文件, 会处理成 C++ 语言. 调用 cc1plus 进行编译.

    gcc 默认不会链接上 C++ 标准库.

     

    这些区别都可以在

    回答中的那两个源代码中看到.

  • 相关阅读:
    JAVA窗口程序实例一
    内存容量出现异常的解决办法
    Android Studio 2.0使用指南
    Android 开机自启服务
    Android 图形总结
    今日课堂总结
    JSON
    GET方法和POST方法
    ajax的简单介绍
    网页-豌豆上的公主
  • 原文地址:https://www.cnblogs.com/cnhk19/p/15047814.html
Copyright © 2020-2023  润新知