`
ruilin215
  • 浏览: 1148310 次
  • 性别: Icon_minigender_2
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

Microsoft Visual C++ 与 MinGW,附图

阅读更多

2008.12.23补记:我对mingw的了解确实不多,本文是我(liigo)“对mingw的初步印象和感性认识”(而非“对mingw的盖棺定论式的评价”),文中有错误之处在所难免,敬请批评指正;如果有读者受我误导,深表歉意。不想因为此文浪费某些读者的宝贵时间,特此说明。

这几天试用wxWidgets,分别用VC6和MinGW5编译通过,下面是一些记录。

MinGW:根据我的理解,它是一个Windows下的编译器(实际上是一系列开发工具)。与Windows下其它编译器不同的是,MinGW与Linux下广泛使用的GNU(基本上)完全兼容,这意味着,在Linux下如何编译源代码,在MinGW中也可以以完全相同的方式编译。

我个人以为,MinGW的出现是有原因的:有些Linux下的开发人员(比如开源阵营)发布的源代码通常只提供Linux下的编译方式,而不提供Windows下的编译方式(这可能与其不熟悉windows操作系统有关),但确实有不少用户需要在在Windows下编译使用此源代码。这在种情况下,如果Windows用户想用VC、BC等编译器编译该源代码,必须重写Makefile(各种编译器所支持的Makefile不尽相同),工作量比较大不说,还很难保证不出错。MinGW的出现,提供了两个平台下的“跨平台编译方案”。MinGW与MSYS相配合,连./configure都有了。与GNU不同的是,MinGW编译生成的是Windows下的可执行文件(.exe)或库文件(.dll,.lib)——不过编译过程中的的中间文件仍然是.o文件,而不是.obj文件(这当然无所谓了,中间文件嘛,编译完成后就没有用了)。MinGW好像是在Cygwin基础上发展而来的。顺便说一下Cygwin,它与MinGW在想法上基本是一致的,两者相比,Cygwin是重量级的(需下载50M以上直至数百兆不等,安装后占用空间可达1G),MinGW是轻量级的(需下载的文件只有20M,安装后70M左右),这是单纯从体积上说的,另外Cygwin现在据说也不是完全免费的了。

wxWidgets-2.6.2在Windows下的编译方式。用VC编译的话,有两种方式:VC工程,Makefile。前者就不用说了,用VC打开*.dsw文件,F7就可以了。这里说一下Makefile的编译方式,首先进入命令行窗口(cmd.exe 或 command.exe),切换路径到wxWidgets源代码所在目录下的 build/msw 子目录,执行“nmake -f makefile.vc”即可。用MinGW编译的话,基本上与前面类似,也是进入命令行窗口(cmd.exe 或 command.exe),切换路径到wxWidgets源代码所在目录下的 build/msw 子目录,只是执行的命令行是“mingw32-make -f makefile.gcc”。最终生成的库文件位于lib目录中。当然,编译之前可能需要设置一下,比如指定编译为动态库(DLL)还是静态库(LIB),或者是否采用UNICODE,等等,设置方式就是修改 build/msw 子目录中的 config.vc 或 config.gcc 文件。

VC6和MinGW相比,两者在编译速度,以及在编译后的文件的大小方面都有较大不同。根据我编译wxWidgets时所做的简单统计,VC6的编译速度比MinGW至少快一倍,VC6编译生成的动态库DLL文件比MinGW小一倍左右,VC6编译生成的静态库LIB文件比MinGW要大不少(大约是1.5倍)。下面的图片两者编译生成的文件大小的对比,左侧是VC6生成的,右侧是MinGW生成的,图一是编译生成动态库DLL的情况,图二是编译生成静态库LIB文件的情况:

wx_dll_vc-gcc.gif

wx_lib_vc-gcc.gif

总起来说,在Windows系统下,还是用VC编译比较合适,没办法的情况下才会选择MinGW。

分享到:
评论

相关推荐

    Microsoft Visual C++ 14.0

    在安装python依赖包的时候,报错信息"microsoft visual c++ 14.0 is required"的解决办法。 1. 下载此文件、2.解压安装、3.再次执行pip install xx命令。

    microsoft visual c++ 14.0 For Python

    1. **下载与安装**:指导用户从官方渠道下载合适的Visual C++版本,如Visual Studio Community Edition或Visual C++ Redistributable,并按照提示进行安装。 2. **配置环境变量**:可能需要添加VC++安装目录到系统...

    c++和Mingw配合的IDE设置

    本文将详细介绍如何配置C++与Mingw的开发环境,以创建一个实用的IDE(集成开发环境)。 首先,你需要下载并安装Mingw。你可以从官网或者第三方镜像站点获取最新版本的Mingw安装包。安装过程中,确保选择了C++编译器...

    mingw-w64 c++17

    支持c++17 mingw-w64 Mingw-w64 is an advancement of the original mingw.org project, created to support the GCC compiler on Windows systems. It has forked it in 2007 in order to provide support for 64 ...

    MinGW64 C++ 版本6.3

    使用MinGW64与Matlab/Simulink的结合,开发者可以充分利用C++的效率和MATLAB的便捷性,构建复杂的系统模型,并实现高性能的仿真和计算任务。同时,由于MinGW64是开源的,因此可以免费使用,降低了开发成本,尤其适合...

    C/C++编译器mingw下载

    在MingW中,GCC被配置为生成Windows平台下的可执行文件,这使得开发者可以利用熟悉的命令行工具进行开发,同时也提供了与MSVC(Microsoft Visual C++)兼容的库和API。 下载MingW时,用户通常会遇到几种选择,如...

    c语言,C++,_mingw.h头文件

    C语言,C++中会用到的_mingw.h头文件。编写一些程序会用到

    MinGW64(支持C++20标准).rar

    本资源MinGW64适用于32位(含gdb32)和64位操作系统,重要的是支持C++20标准。解决CodeBlocks等编程软件(注:含MinGW)各版本不能调试问题(只需替换),与时俱进,升级你的MinGW,你的编程软件功能会更加强大。

    使用setuptools和cython打包python程序的时候遇到:Microsoft visual c++ 14.0 is required问题解决办法-附件资源

    使用setuptools和cython打包python程序的时候遇到:Microsoft visual c++ 14.0 is required问题解决办法-附件资源

    Visual-MinGW

    * Home Page * http://visual-mingw.sourceforge.net/<br>* * Mailing list * http://sourceforge.net/mail/?group_id=46778<br>* visual-mingw-general@lists.sourceforge.net * * License * ...

    C/C++编译器 mingw64.zip MinGW-W64-builds-4.3.5

    3. **API兼容性**:MinGW64编译器产生的代码可以与Microsoft Visual C++编写的程序无缝对接,因为它提供了与Windows API的兼容接口。 4. **多线程支持**:MinGW64内置了对多线程的支持,开发者可以利用OpenMP等并行...

    Symbolic C++ 3 MinGW

    《Symbolic C++ 3 在MinGW环境下的静态编译详解》 Symbolic C++ 是一个强大的C++扩展库,它允许程序员在C++程序中直接处理数学表达式,进行符号计算。Symbolic C++ 3 版本是这一系列的最新版本,它提供了更加完善的...

    c++编译器 mingw64位 gcc资源下载

    `w32api-3.13-mingw32-dev.tar.gz`和`mingwrt-3.15.2-mingw32-dev.tar.gz`是MingW的API头文件和库文件,它们提供了与Windows API交互的接口,使得开发者可以在C++程序中调用Windows系统函数。 在学习和使用MingW64...

    windows下C++开发环境MinGW 8.1.0

    在Windows下开发C++程序时,MinGW是一个非常重要的工具,它提供了GCC编译器和一些必要的库,使得开发者能够在Windows上使用与Linux环境下类似的命令行工具来编译C++代码。 MinGW 8.1.0是该项目的一个版本,包含了...

    更通用的DirectX SDK可以与Visual Studio、MinGW等多个版本协同工作 .zip

    更通用的DirectX SDK可以与Visual Studio、MinGW等多个版本协同工作。通用 DirectX SDK从 Windows 8 开始,DirectX SDK 被包含在 Windows SDK 中。2010 年 6 月是最后一个版本。在大多数情况下,这种方式很方便。...

    Dev-Cpp 5.4.2 MinGW 4.7.2 32位版本 32bit IDE C++编程工具 ORWELL c++ 2013年6月更新

    在工程编辑器中集合了编辑器、编译器、连接程序和执行程序,提供高亮度语法显示的,以减少编辑错误,还有完善的调试功能,适合初学者与编程高手的不同需求,是学习C或C++的首选开发工具!多国语言版中包含简繁体中文...

    mingw C/C++程序环境

    MinGW 提供了一套简单方便的...MinGW是完全免费的自由软件,它在Windows平台上模拟了Linux下GCC的开发环境,为C++的跨平台开发提供了良好基础支持,为了在Windows下工作的程序员熟悉Linux下的C++工程组织提供了条件。

    MinGW_4.9.2

    3. **Header Files**:MinGW包含了Windows API的头文件,使得开发者可以在不依赖Microsoft Visual C++或其他商业编译器的情况下,编写调用Windows API的程序。 **安装与使用MinGW 4.9.2:** 1. **下载与解压**:...

    MinGW x64 C/C++解释工具(可连用Microsoft Visual Studio)

    C++编译指令:g++ "folder\file.cpp" -o "folder\file.exe" -std=gnu++11 -g3 -I"MinGW64\include" -I"MinGW64\x86_64-w64-mingw32\include" -I"MinGW64\lib\gcc\x86_64-w64-mingw32\4.8.1\include" -I"\MinGW64\lib...

Global site tag (gtag.js) - Google Analytics