当前位置: 首页 > 编程日记 > 正文

MinGW简介

转自:http://baike.baidu.com/view/98554.htm

MinGW是指只用自由软件来生成纯粹的Win32可执行文件的编译环境,它是Minimalist GNU on Windows的略称。这里的“纯粹”是指使用msvcrt.dll的应用程序。无法使用MFC (Microsoft Foundation Classes微软基础类库)。

注:msvcrt.dll(名称:Microsoft C Runtime Library)提供了printf,malloc,strcpy等C语言库函数,并且为使用C/C++(Vc)编绎的程序提供了初始化(如获取命令行参数)以及退出等功能。

MinGW:一个可自由使用和自由发布的Windows特定头文件和使用GNU工具集导入库的集合,允许你生成本地的Windows程序而不需要第三方C运行时库。

MinGW,即 Minimalist GNU For Windows。它是一些头文件和端口库的集合,该集合允许人们在没有第三方动态链接库的情况下使用 GCC 产生 Windows32 程序。

在基本层,MinGW 是一组包含文件和端口库,其功能是允许控制台模式的程序使用微软的标准C运行时间库(MSVCRT.DLL),该库在所有的 NT OS 上有效,在所有的 Windows 95 发行版以上的 Windows OS 有效,使用基本运行时间,你可以使用 GCC 写控制台模式的符合美国标准化组织(ANSI)程序,可以使用微软提供的 C 运行时间扩展。该功能是 Windows32 API 不具备的。下一个组成部分是 w32api 包,它是一组可以使用 Windows32 API 的包含文件和端口库。与基本运行时间相结合,就可以有充分的权利既使用 CRT(C Runtime)又使用 Windows32 API 功能。

实际上 MinGW 并不是一个单纯的C/C++ 编译器,而是一套 GNU 工具集合。除开 GCC 以外,MinGW 还包含有一些其他的 GNU 程序开发工具 (比如 gawk bison 等等)。

开发 MinGW 是为了那些不喜欢工作在 Linux(FreeBSD) 操作系统而留在 Windows 的人提供一套符合 GNU 的 GNU 工作环境。

所以,使用 MinGW 我们就可以像在 Linux 下一样使用 GNU 程序开发工具。

GCC 就是 MinGW 的核心所在,GCC 是一套支持众多计算机程序语言的编译系统,而且在语言标准的实现上是最接近于标准的。并且 GCC 几乎可以移植到目前所有可用的计算机平台。

GCC 本身不像 VC 那样拥有IDE 界面(在 Windows 上也存在 Dev C++之类的支持 MinGW 编译器的 IDE)。源代码编辑你可以选用任何你喜欢的文本编辑器(据说微软的开发人员包括 VC 的开发都不用 VC 所带的 IDE 编辑器,而是选用 GNU 的 VIM 编辑器)。然后使用 make 等工具来进行软件项目的编译、链接、打包乃至发布。而像 cvs(svn) 源代码版本控制工具可以让世界上任何一个角落的人都可以参与到软件项目中来。

关于 MFC,微软基础库类,这个随 VC++ 携带的一个源代码公开的开发包,和其他 Windows 程序开发包是一样的。如果有 VC++ 的授权,你完全可以使用 MFC 的源代码,也就是你使用 GCC 来编译 MFC 程序是完全可以的。

当然,GNU 下也很多 Windows 程序开发包,甚至有一些是支持跨平台使用的。不仅仅可以直接把源代码编译为 Windows 程序,也可以不经修改编译为其他操作系统的图形程序。

不过 GNU 下,最流行的图形界面开发库是 GTK+与Qt。GTK+ 与Qt均提供跨平台支持。例如qt支持windows、linux、mac os x、windows CE、symbian、meego等操作系统平台,并且提供了Qt SDK(包含Qt creator集成开发环境)。Gtk也能很好的运行在 Windows 平台(比如 GIMP 和 Gaim)。

总体说来,使用 MinGW 就是 GNU。

其它参考文献:

1、    http://www.mingw.org/

2、 http://wenku.baidu.com/view/b73974c308a1284ac85043f6.html

相关文章:

Confluence 6 创建小组的公众空间

2019独角兽企业重金招聘Python工程师标准>>> 现在是我们可以开始创建公众空间的时候了,全世界都希望知道这个项目和勇敢的探险活动。 在这个步骤中,我们将会创建一个项目小组的空间,并且将这个空间公布给全世界。这个表示的是你将…

windows 7 可以清除的文件

缓解系统磁盘空间不足的情况1、系统盘根目录下的MSOCache是office的安装备份文件,可以删除。2、c:\user\用户名\appdate\local\temp是软件安装时留下的临时文件。3、c:\windows\SoftwareDistribution中存放的是系统补丁更新包及旧的系统文件。4、c:\windows\winsxs\…

阿里最新论文解读:考虑时空域影响的点击率预估模型DSTN

作者 | 石晓文转载自小小挖掘机(ID: wAIsjwj)【导语】:在本文中,阿里的算法人员同时考虑空间域信息和时间域信息,来进行广告的点击率预估。什么是时空域?我们可以分解为空间域(spatial domain)和时间域(tem…

windows7 64位机上配置MinGW+Codeblocks+ wxWidgets

在Windows7 64位机子上安装配置MinGWCodeblockswxWidgets步骤如下: 1、 下载mingw-get-inst-20111118:http://sourceforge.net/projects/mingw/; 2、 双击mingw-get-inst-20111118.exe,一般按默认即可,选择自己需要…

jQuery带动画的弹出对话框

在线演示 本地下载

陶哲轩实分析 习题 13.4.6

设 $(X,d)$ 是度量空间,并设 $(E_{\alpha})_{\alpha\in I}$ 是 $X$ 中的一族连通集合.还设 $\bigcap_{\alpha\in I}E_{\alpha}$ 不空.证明 $\bigcup_{\alpha\in I}E_{\alpha}$ 是连通的.证明:由于 $\bigcap_{\alpha\in I}E_{\alpha}$ 是不空的,因此存在 $p\in \bigcap_{\alpha\…

一年参加一次就够,全新升级的AI开发者大会议程出炉!

“只讲技术,拒绝空谈”的AI开发者大会再次来临!2018 年的AI开发者大会,作为年度人工智能领域面向专业开发者的一次高规格技术盛会,上千名开发者与上百名技术专家齐聚一堂,大会以“AI技术与应用”为核心,就人…

Windows7下配置MinGW+CodeBlocks+OpenCV2.3.1

1、下载mingw-get-inst-20111118:http://sourceforge.net/projects/mingw/; 2、双击mingw-get-inst-20111118.exe,一般按默认即可,选择自己需要的组件; 3、添加MinGW环境变量:选择计算机-->点击右键--…

Spark SQL基本操作以及函数的使用

2019独角兽企业重金招聘Python工程师标准>>> 引语: 本篇博客主要介绍了Spark SQL中的filter过滤数据、去重、集合等基本操作,以及一些常用日期函数,随机函数,字符串操作等函数的使用,并列编写了示例代码&am…

OpenCV提取轮廓(去掉面积小的轮廓)

转自&#xff1a;http://www.kaixuela.net/?p23 #include <stdio.h> #include "cv.h" #include "cxcore.h" #include "highgui.h" #include <iostream> using namespace std; #pragma comment(lib,"cv.lib") #pra…

软工作业 5:词频统计——增强功能

一、基本信息 1.1 编译环境、项目名称、作者 1 #编译环境:python3.6 2 #项目名称&#xff1a;软工作业5-词频统计—增强功能 3 #作者&#xff1a;1613072055 潘博 4 # 1613072056 侯磊 1.2项目地址 本次作业地址: https://www.cnblogs.com/panboo/项目git地址: https://g…

Linux之文件权限管理

chmod ux转载于:https://www.cnblogs.com/chaoren399/archive/2013/03/11/2953727.html

如果三十年前有这些AI技术,可可西里的悲剧不会发生

作者 | 神经小姐姐来源 | HyperAI超神经&#xff08;ID&#xff1a;HyperAI&#xff09;而被盗猎者大量的非法捕杀。多种野生动物都处于濒临灭绝的局面&#xff0c;人工智能等技术&#xff0c;能够在帮助保护野生动物上&#xff0c;发挥比较大的作用&#xff0c;让我们能够生存…

Percona-Server-5.5.30安装

1、安装系统环境 yum install -y gcc gcc-c autoconf automake zlib* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel* cmake bison 2、下载源码包 1 http://www.percona.com/downloads/ 2 3 wget -c http://www.percona.com/redir/downloads/Percona-Server-5.5/Perc…

OpenCV中SVM的使用

转自&#xff1a;http://download.csdn.net/download/gaogaogao124/3125857 略有改动&#xff1a; #include"stdafx.h" #include<opencv2/opencv.hpp> #include<cmath> #include<ctime> using namespace std; int _tmain(int argc,_TCHAR…

数据不够,用GAN来凑!

作者 | CV君来源 | 我爱计算机视觉&#xff08;ID&#xff1a;aicvml&#xff09;在计算机视觉领域&#xff0c;深度学习方法已全方位在各个方向获得突破&#xff0c;这从近几年CVPR 的论文即可看出。但这往往需要大量的标注数据&#xff0c;比如最著明的ImageNet数据集&#x…

MySQL的登陆错误:ERROR 1049 (42000): Unknown database 'root'

刚刚装上数据库的时候&#xff0c;直接按照这个格式就登陆上去了&#xff0c;突然莫名其妙登陆不上去了 但是现在突然死活登陆不上去了 于是拿着这个报错信息在网上找啊找&#xff0c;终于找了了错误的原因 -p和密码是连在一起的&#xff0c;赶紧一试&#xff0c;果然可以登陆&…

分布式缓存系统Memcached简介与实践

缘起: 在数据驱动的web开发中&#xff0c;经常要重复从数据库中取出相同的数据&#xff0c;这种重复极大的增加了数据库负载。缓存是解决这个问题的好办法。但是ASP.NET中的虽然已经可以实现对页面局部进行缓存&#xff0c;但还是不够灵活。此时Memcached或许是你想要的。Memca…

Windows7 libsvm库中grid.py的使用步骤

1、从http://www.csie.ntu.edu.tw/~cjlin/libsvm/下载最新的libsvm-3.12库(libsvm-3.12.tar.gz或libsvm-3.12.zip)&#xff0c;将其放到F:\libsvm文件夹下解压缩&#xff0c;生成一个libsvm-3.12文件夹&#xff1b; 2、从http://www.gnuplot.info/下载最新的gnuplot即gp460-wi…

基于GEMM实现的CNN底层算法被改?Google提出全新间接卷积算法

作者 | Marat Dukhan from Google Research译者 | 凯隐责编 | Jane出品 | AI科技大本营&#xff08;ID: rgznai100&#xff09;【导读】本文介绍的内容主要聚焦Google 的一项最新工作&#xff1a;改变基于 GEMM 实现的 CNN底层算法提出的新方法。通用矩阵乘法&#xff08;Gener…

共享内存跨进程通信

通过共享内存通信是最快的&#xff0c;不过既然是共享资源&#xff0c;那么就必须要有同步机制。 创建共享内存有两种方式shm和mmap的方式。 mmap是在磁盘上建立一个文件&#xff0c;每个进程地址空间中开辟出一块空间进行映射。而对于shm而言&#xff0c;shm每个进程最终会映射…

扶稳!四大步“上手”超参数调优教程,就等你出马了 | 附完整代码

作者 | Matthew Stewart译者 | Monanfei责编 | Jane出品 | AI科技大本营&#xff08;ID: rgznai100&#xff09;【导读】在本文中&#xff0c;我们将为大家介绍如何对神经网络的超参数进行优化调整&#xff0c;以便在 Beale 函数上获得更高性能&#xff0c;Beale 函数是评价优化…

读好书,写好程序

本人是做.NET开发的&#xff0c;以企业应用为主&#xff0c;以互联网为爱好&#xff0c;这里给大家推荐一些适合.NET程序员的书&#xff1a; 软件设计《企业应用架构模式》 Martin Fowler 的大作之一&#xff0c;总结了多种常见的企业应用架构模式&#xff0c;这些模式是脱离具…

SIFT特征点匹配中KD-tree与Ransac算法的使用

转自&#xff1a;http://blog.csdn.net/ijuliet/article/details/4471311 Step1:BBF算法&#xff0c;在KD-tree上找KNN。第一步做匹配咯~ 1.什么是KD-tree&#xff08;fromwiki&#xff09; K-Dimension tree&#xff0c;实际上是一棵平衡二叉树。 一般的KD-tree构造过程&a…

jQuery带缩略图的宽屏焦点图插件

在线演示 本地下载

追溯XLNet的前世今生:从Transformer到XLNet

作者丨李格映来源 | 转载自CSDN博客导读&#xff1a;2019 年 6 月&#xff0c;CMU 与谷歌大脑提出全新 XLNet&#xff0c;基于 BERT 的优缺点&#xff0c;XLNet 提出一种泛化自回归预训练方法&#xff0c;在 20 个任务上超过了 BERT 的表现&#xff0c;并在 18 个任务上取得了当…

微软MCITP系列课程

http://liushuo890.blog.51cto.com/5167996/d-1转载于:https://blog.51cto.com/showcart/1156172

在Ubuntu11.10中安装配置OpenCV2.3.1和CodeBlocks

1、 打开终端&#xff1b; 2、 执行指令&#xff0c;删除ffmpeg and x264旧版本&#xff1a;sudo apt-get removeffmpeg x264 libx264-dev 3、下载安装x264和ffmpeg所有的依赖&#xff1a;sudo apt-get update sudo apt-get installbuild-essential checkinstall git cmake…

深入浅出Rust Future - Part 1

本文译自Rust futures: an uneducated, short and hopefully not boring tutorial - Part 1&#xff0c;时间&#xff1a;2018-12-02&#xff0c;译者:motecshine, 简介&#xff1a;motecshine 欢迎向Rust中文社区投稿,投稿地址,好文将在以下地方直接展示 Rust中文社区首页Rust…

cmd 修改文件属性

现在的病毒基本都会采用一种方式&#xff0c;就是将病毒文件的属性设置为系统隐藏属性以逃避一般用户的眼睛&#xff0c;而且由于Windows系统的关系&#xff0c;这类文件在图形界面下是不能修改其属性的。但是好在Windows还算做点好事&#xff0c;留下了一个attrib命令可以让我…