zoukankan      html  css  js  c++  java
  • (gcc/g++)/clang/cl编译器

    IDE: 现在的IDE把编译器集成进来了,包括代码编辑器+编译器。

    GNU:GNU's NOT UNIX,鄙视UNIX不开源)

    GCC----GNU Compiler Collection

    即GUN编译器集合,包括gcc和g++编译器,它可以编译C、C++、JAV、Fortran、Pascal、Object-C、Ada等语言。

    gcc是GCC中的GUN C Compiler(C 编译器)
    g++是GCC中的GUN C++ Compiler(C++编译器)

    是GNU项目的关键部分,亦是自由的类Unix及苹果电脑Mac OS X 操作系统的标准编译器。GCC(特别是其中的C语言编译器)也常被认为是跨平台编译器的事实标准。

    gcc调用了C compiler,而g++调用了C++ compiler

    gcc和g++的主要区别

    1. 对于 .c和.cpp文件,gcc分别当做c和cpp文件编译(c和cpp的语法强度是不一样的)

    2. 对于 .c和.cpp文件,g++则统一当做cpp文件编译

    3. 使用g++编译文件时,g++会自动链接标准库STL,而gcc不会自动链接STL

    Clang

    一个C、C++、Objective-C和Objective-C++编程语言的编译器前端。包括Clang前端和Clang静态分析器等。[3]
    它采用了底层虚拟机(LLVM)作为其后端,目标是提供一个GNU编译器套装(GCC)的替代品。苹果公司的赞助支持下进行开发,而源代码授权是使用类BSD的伊利诺伊大学厄巴纳-香槟分校开源码许可。
    兼容GCC,也是跨平台。

    cl.exe

    cl.exe是Microsoft C/C++编译器(因此也叫VC++ 编译器),只能在支持Microsoft Visual Studio 的操作系统中运行

    还记得在VS安装后会给项目配置lib,include,dll库的目录。那么系统如何去根据目录去找这些文件?
    需要将这些文件路径放到系统的path变量里-----系统默认查找的范围。所以报错"cl.exe没找到",大概率就是这里path没设置好!!!(因为装了VS就自带了cl.exe编译器)

    总结

    Linux系统及跨平台用GNU
    windows用cl,编译内存占用小。

    另外,还有GCC在windows平台的移植版本,Ming-W64和 Cygwin。其中MingW-64是真正的GCC移植,而cygwin只是提供一个类unix的环境内部是原生的GCC。

  • 相关阅读:
    使用Spring AOP实现MySQL数据库读写分离案例分析
    mysql的备份(文档的内容小编都已经验证过了)
    【信息化】MySQL数据库简介
    基于MySQL的分布式数据库TDSQL十年锻造经验分享
    MySQL数据库丢失数据场景分析
    微博的MySQL数据库优化实践经验
    数据库MySQL调优实战经验总结
    让数据库跑的更快的7个MySQL优化建议
    一文看懂 MySQL 分区和分表,提高表增删改查效率
    三分钟掌握SQL Server迁移Mongodb
  • 原文地址:https://www.cnblogs.com/Henry-ZHAO/p/13649105.html
Copyright © 2011-2022 走看看