Microsoft Visual C++ 与 MinGW
来源:互联网 发布:苹果数据转移到小米 编辑:程序博客网 时间:2024/06/07 06:17
这几天试用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倍)。
总起来说,在Windows系统下,还是用VC编译比较合适,没办法的情况下才会选择MinGW。
- Microsoft Visual C++ 与 MinGW
- Microsoft Visual C++ 与 MinGW,附图
- [转]Microsoft Visual C++ 与 MinGW
- Microsoft Visual C++ 与 MinGW,附图
- 深入探讨下一代 Visual C++(来自MICROSOFT)
- Microsoft Visual C#. NET 2003 kick start
- Providing the Microsoft Visual C runtime DLL
- How to automate Microsoft Excel from Microsoft Visual C#.NET
- Microsoft Visual SourceSafe 2005 下载与配置
- Microsoft Visual SourceSafe 2005 下载与配置
- Microsoft Visual SourceSafe 2005 下载与配置
- 比较 Microsoft Visual Basic for Applications 6.0 与 Microsoft VSTO
- subline与mingw构建c编译环境
- Visual MinGW中文版发布
- Compiling and Linking MKL with Microsoft* Visual C/C++*
- [C#]Microsoft Visual Studio 2005新建项目为什么没有解决方案?
- Microsoft Visual Studio--C# 有用…
- Microsoft Visual Studio ~ C/C++ Runtime Library ~ Static/dynamic linking
- 一个电子工程师的经验之谈
- 单片机开发中应掌握的几个基本技巧
- 嵌入式linux快速入门
- 嵌入式工程师的硬件和软件道路选择
- 《 window.open()的所有参数详细介绍 》
- Microsoft Visual C++ 与 MinGW
- ARM开发经验
- 我的嵌入式之路--转载
- 嵌入式工程师step by step
- 硬件工程师应具备的基础知识
- 6.1. 增加项目到显示列表
- 电子爱好者常备的工具和材料
- 关于如何编辑绑定后的TextBox来完成对数据源的更新
- ARM的开发步骤