原地址:https://my.oschina.net/u/588967/blog/73478

GNU, GCC, MinGW是开源社区常常要遇到的概念. 网上一般的解释比较繁琐, 让人如坠云雾. 本文力图用简便直观的语言对这三个概念进行解释.

1 什么是GNU?
       GNU是“GNU's Not Unix!”的缩写. 1983年,针对当时Unix操作系统垄断计算机界的情况,前MIT计算机专家Richard Stallman提出建立一个免费且代码开放的计算软件系统的设想. 这个设想就叫“GNU计划”或“GNU项目”(GNU project).30年来GNU计划已经吸引了全世界计算机领域的大量志愿者加入,相当成功. 目前,GNU计划下的免费开源软件不计其数,非常有用。GNU 计划在WWW 上催生了许多开源社区,著名的有Apache Software Foundation (ASF),
SourceForge, OpenSymphony and so on. 我国比较好的是“开源中国” (oschina)。
2 什么是GCC?
      GCC是“GNU Compiler Collection”的缩写。它是GNU计划下开发出的一套计算机语言编译系统包括C/C++, Fortran, Java, Ada等编译器。当然是开源免费的,GNU下的任何东西都是免费开源的。
3 什么是MinGW?
      GCC是基于Linux平台的。原始的GCC当然不能在Windows下用。将GCC移植到Windows下的东西就是MinGW. 它是“Minimalist GNU on Windows”的缩写。MinGW也包括 C/C++, Fortran, Java,Ada等语言的编译器. 同样MinGW也是完全免费的. 在windows下按装MinGW后, C/C++, Fortran, Java, 等的编译器就全有了, 不在需要什么VC, Virtual Fortran之类的东西了.
4 GNU计划发展简史
• 1983: Richard Stallman提出GNU 计划;
• 1987: GCC 1.0 发布。当时只包括C编译器,所以GCC在当时是“GNU C Compiler”的缩写;
• 1990: GNU Emac发布;GCC 发展成多语言编译器系统, 变为“GNU Compiler Collection”
• 1991: Linus Torvalds 推出Linux操作系统;
• 1992: Linux 加入GNU成为GNU/Linux, 简称Linux.
• 1992: – 大量GNU软件被开发和发布

【转】简说GNU, GCC and MinGW (Lu Hongling)的更多相关文章

  1. Environment error: “CodeBloks can't find compiler executable in your configured search path's for GNU GCC compiler”

    codeblock安装后,提示cant find compiler executable in your configured search paths for GNU GCC Compiler 可能 ...

  2. 关于GCC Cygwin MinGW MSYS

    [转载]关于Gcc/MinGW/Cygwin/Msys http://blog.sciencenet.cn/blog-778757-616920.html 一.GCC的历史 GCC是一个原本用于Uni ...

  3. C++对象模型与内存位对齐的简单分析(GNU GCC&VS2015编译器)

    以Fruit和Apple为例进行分析: Fruit和Apple的定义如下: 通过在两种编译环境下的测试(GNU GCC & VS2015),可以发现这两种编译器的对象模型是一样的,如下图所示: ...

  4. macbook中gcc替换为gnu gcc

    macbook中gcc被定义为clang,而正统的gnu gcc却只能使用gcc-7(gcc 7版本),然而,如果修改/usr/bin的链接,还容易造成系统错误,因为mac的工具链和gcc(clang ...

  5. gcc和MinGW的异同

    cygwin/gcc和MinGW都是gcc在windows下的编译环境,但是它们有什么区别,在实际工作中如何选择这两种编译器. cygwin/gcc完全可以和在linux下的gcc化做等号,这个可以从 ...

  6. mac下使用gnu gcc

    1 mac下安装gnu gcc brew search gcc brew install gcc@6 2 mac下编写c/c++代码所需的标准库和头文件 2.1 标准c++的库的头文件都是标准化了的, ...

  7. gcc和MinGW的异同(在cygwin/gcc做的东西可以无缝的用在linux下,没有任何问题,是在windows下开发linux程序的一个很好的选择)

    cygwin/gcc和MinGW都是gcc在windows下的编译环境,但是它们有什么区别,在实际工作中如何选择这两种编译器. cygwin/gcc完全可以和在linux下的gcc化做等号,这个可以从 ...

  8. GNU GCC 扩展属性

    http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html constructor destructor constructor (prior ...

  9. Linux/RedHat 编译安装GNU gcc 4.9.0 (g++)

    这里说的是编译安装,yum/apt-get 等安装方法比較简单,不阐述! 1.下载源代码包:gcc.gnu.org 2.解压: tar -xjvf gcc-4.9.0.tar.bz2 3.下载编译所需 ...

随机推荐

  1. 949. Largest Time for Given Digits

    Given an array of 4 digits, return the largest 24 hour time that can be made. The smallest 24 hour t ...

  2. 增强型for和Iterator学习

    1,增强for和对于非集合类(没有实现 Iterable接口)的数组遍历效果一样 2,对于集合类,就是隐式调用迭代器 iterator的遍历,各有各个场合 3,对于arraylist来所,由于数据结构 ...

  3. VMware ESX常用命令 和 IP 地址修改

    一. VMware ESX Command 1. 看你的esx版本 vmware –v 2. 查看显示ESX硬件,内核,存储,网络等信息 esxcfg-info -a(显示所有相关的信息) esxcf ...

  4. 【linux】centos6.5搭建svn

    1.检查是否已安装 rpm -qa subversion 如果要卸载旧版本: yum remove subversion 2.安装 yum install subversion PS:yum inst ...

  5. 学习blus老师js(4)--DOM

    一.DOM节点 1.获取子节点: childNodes  nodeType         节点类型 children            只包括元素,不包括文本:  子节点只算第一层.只算孩子一级 ...

  6. Bootstrap-Plugin:警告框(Alert)插件

    ylbtech-Bootstrap-Plugin:警告框(Alert)插件 1.返回顶部 1. Bootstrap 警告框(Alert)插件 警告框(Alert)消息大多是用来向终端用户显示诸如警告或 ...

  7. sqlnet.ora限制客户端IP访问

    实现功能: 只允许某几个IP访问数据库服务端(白名单): $ORACLE_HOME/network/admin/sqlnet.ora 添加2个主要参数 TCP.VALIDNODE_CHECKING=y ...

  8. Solr-DIH建立索引并执行简单初步的查询

    我们将solr的安装目录设置为$SOLR_INSTALL,   ./solr start,不使用任何原有的examples来进行,启动完成后,不存在任何的core,提示No cores availab ...

  9. string ids=aduuids.Aggregate("", (m, n) => m + n+",").TrimEnd(',');

    string ids=aduuids.Aggregate("", (m, n) => m + n+",").TrimEnd(',');

  10. tomcat下载安装和配置

    Tomcat服务器 1.Web开发中的常见概念 (1)B/S系统和C/S系统 Brower/Server:浏览器 服务器 系统 ----- 网站 Client/Server:客户端 服务器 系统 -- ...