Table of content

0 Preface/Foreword

1 MinGW-w64

1.1 使用MinGW-w64的原因

1.2 MinGW-w64使用场景

1.3 官网

2 GCC & LLVM

2.1 编译器构成

2.2 GCC

2.3 LLVM

2.3.1 Clang


0 Preface/Foreword

MInGW全称为:Minimalist GNU on Windows.将经典的开源C语言编译器GCC移植到了Windows平台下,并且包含了Win32API,因此可以将源代码编译为在Windows中运行的可执行程序。

而且还可以使用一些Windows不具备的,Linux平台下的开发工具。概括来讲:MinGW 是GCC的Windows版本。

MinGW-w64与MinGW的区别:

  • MinGW只能编译生产32位可执行程序;
  • MinGW-w64可以编译成64bit或者32bit可执行程序

1 MinGW-w64

1.1 使用MinGW-w64的原因

讲原因我们就可以从它的优势说起:

  • 开源软件,可以免费使用
  • 是一个活跃的开源社区在维护,不会过时
  • 支持最新的C语言标准
  • 使用Windows的C语言运行库,因此编译出的程序不需要第三方DLL,可以直接在Windows下运行
  • 流行的IDE本质上是将MinGW-w64进行了封装,使得具有良好的GUI,简化了操作,但是内部的核心还是MinGW-w64
  • 是稳定的、可靠的、持续更新的C/C++编译器,使用可以免去很多麻烦,不用担心过时,也不用担心编译器本身有bug

1.2 MinGW-w64使用场景

  • 对于C语言初学者,适合用MinGW-w64,因为可以知道编译程序的细节
  • 相比于VS2015等编译器,MinGW-w64属于手动编译,而VS2015属于自动编译

1.3 官网

https://www.mingw-w64.org/

2 GCC & LLVM

2.1 编译器构成

传统编译器分为三个部分:

  • Frontend,前端:语义(Semantic)和语法(Syntax)分析,将源代码转换成抽象语法树(Abstract Syntax Tree);
  • Optimizer,优化器:在前端基础上,对中间代码进行优化;
  • Backend,后端:将优化后的中间代码转化为针对各自平台的机器代码;

2.2 GCC

GCCGNU Compiler Collection,GNU编译器套装,一套由GNU开发的编程语言编译器。GCC原名GNU C语言编译器,刚开始只能编译C语言。后来GCC经过扩展,可以处理C++、Objective-C、Java等其他语言。

2.3 LLVM

LLVM:Low Level Virtual Machine,底层虚拟机,提供与编译器相关支持,能够进行程序语言的编译器优化、链接优化、在线编译优化、代码生成,可以作为多种编译器的backend使用。

2.3.1 Clang

Clang是LLVM的frontend,只支持C、C++和Objective-C三种语言。

MinGW MinGW-W64介绍相关推荐

  1. MinGW基本情况介绍

    MinGW (发布时间:2008年7月7日) (原文地址:http://www.mingw.org/wiki/MinGW) MinGW(Minimumlist GNU for Windows--用于W ...

  2. [C++] [MinGW] MinGW下载与使用

    下载 在MinGW64官网找到"Downloads",下滑找到"Sources",打开SourceForge的超链接,就进入下载界面了. 滑到最底下,如下图所示 ...

  3. 开源项目:windows下使用MinGW+msys编译ffmpeg

    本文参考了网络上的不少文章,但由于版本环境的问题参考文章并不能直接指导编译,本文吸收多方经验,并在自己多次编译实验的基础上写成,欢迎转载,请注名出处.     FFmpeg是在Linux平台下开发的, ...

  4. 关于GCC Cygwin MinGW MSYS

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

  5. windows下使用MinGW+msys编译ffmpeg

    本文参考了网络上的不少文章,但由于版本环境的问题参考文章并不能直接指导编译,本文吸收多方经验,并在自己多次编译实验的基础上写成,欢迎转载,请注名出处.     FFmpeg是在Linux平台下开发的, ...

  6. ming window 交叉编译_如何在Linux for Windows上与MinGW交叉编译?

    我正在尝试使用MinGW在 Linux上编译Windows的Qt5应用程序. 我正在使用Travis-CI来获得两个Windows可执行文件(win32,win64)的连续构建. 我已经建立了一个构建 ...

  7. 在Windows下使用CMake+MinGW搭建C/C++编译环境

    转载自:https://blog.csdn.net/isscollege/article/details/78038921?locationNum=8&fps=1 1 工具介绍 作为一款执行效 ...

  8. windows 下使用 MinGW + msys 编译 ffmpeg

    本文参考了网络上的不少文章,但由于版本环境的问题参考文章并不能直接指导编译,本文吸收多方经验,并在自己多次编译实验的基础上写成,欢迎转载,请注名出处.     FFmpeg是在Linux平台下开发的, ...

  9. qt msvc 版本 移植 linux,Qt 程序异常结束 (MinGW 与 MSVC 版本切换)

    引言 针对Qt的两种版本,是不是有很多的疑惑,或者说在切换时,遇到了程序异常结束,函数未定义等很多奇怪的问题?今天我们来对常见的几种问题进行分析与解决. 简介 操作系统:window7 x64 编程I ...

  10. MinGW安装教程——著名C/C++编译器GCC的Windows版本

    前言 本文主要讲述如何安装 C语言 编译器--MinGW,特点是文章附有完整详细的实际安装过程截图,文字反而起说明提示作用. 编写本文的原因始于我的一个观点:图片可以比文字传达更多的信息,也能让其他人 ...

最新文章

  1. Ubuntu环境下docker的安装
  2. linux7怎么查看rsync状态,linux – Rsync显示单个文件的进度
  3. pycharm ssh mysql_PyCharm使用之配置SSH Interpreter的方法步骤
  4. php 科研,科研之路2
  5. java json注解_返回json用什么注解
  6. elementUI的DatePicker+DateTimePicker组件的自定义日期禁用
  7. 【乡音】海安话四级考试
  8. Python实战——2048
  9. [笔记]TB-6S-LX150T-IMG2_HWUserManual_1.02e实例讲解
  10. pip 安装指定版本的库
  11. win7企业版怎么都激活不了,看这里
  12. js 正则匹配两个字符串中间的字符,一级匹配带有反斜杠的字符串
  13. MNE从头创建raw结构
  14. 最近很多人问我:saiku下载不下来
  15. 硅谷华人AI精英大批回国成趋势,BAT在美设「挖人」据点,猎头暗中潜伏
  16. 图片马赛克处理以及上传保存—网页端
  17. 数值实验-高斯核函数 python/matlab 实现
  18. 在Linux服务器root用户依然遇到删除不掉得文件如何办 ,宝塔用命令无法删除文件得解决问题,使用rm -rf删除命令提示Operation not permitted 如何解决
  19. 统计英文名著中单词出现频率
  20. 方唯上传程序后不能登录后台

热门文章

  1. “马里奥(Mario)之父”──宫本茂
  2. PAKDD 2021 智能运维算法赛技术分享(精彩直播回放)
  3. yolov5训练操作步骤
  4. 怎样赚钱?互联网赚钱才是草根最好的方式!
  5. PHP 返回结果给前端/ajax后,在后台继续执行代码的方法
  6. python xlrd导入后怎么保存_pythonxlrd导入.xslx模板,使用Openpyxl编辑并重新保存.xslx-Fi...
  7. Cocos2d-x 是一个支持多平台的 2D 手机游戏引擎
  8. 动态申请权限---通讯录 及获取通讯录列表
  9. 深圳APP开发婚恋社交App
  10. Linux笔记之Docker安装,基于Debian 11(bullseye)