mingw,cygwin,gnuwin32

7:04:00 PM 0 Comments

* MinGW:Minimalist GNU for Windows
o 安装MinGW
+ 无配置
o 安装MSYS及MSYSDTK
+ 编辑了/MSYS.bat
1. 加入chdir,使可以在目录外运行。
2. 通过命令行参数%~dp0得到MSYS的路径。
3. 删除其他命令行参数相关的动作。
4. 将命令行参数%~dp1设置为环境变量MSYSINITDIR以备Shell初始目录之用。
5. 将默认的Shell从rxvt改为sh。
+ 增加了/LoadMSYS.bat及/LoadMSYS.reg
1. 作用:扩展命令行参数为完全路径名,将参数传送给MSYS.BAT。
2. 将LoadMSYS.bat放在系统PATH下面,使在任何目录下都可以调用。
3. 编辑注册表ROOT下面的*项和Folder项,以支持鼠标右健直接调用。
4. 导出注册表项为LoadMSYS.reg,以备用。
+ 编辑了/etc/fstab
1. 设置MinGW目录的Mount Point为/mingw
2. 设置MINGW/INFO的Mount Point为/info
3. 创建COMMAND目录,将Mount Point设为/usr/local/bin,以存放用MinGW Gcc编译的程序。
4. 设置了其他一些常用目录的Mount Point。
+ 编辑了/etc/profile
1. export PATH:加入/Mingw/bin。
2. export INFOPATH:目录用;号隔开,作info搜索之用。
3. 如果$MSYSINITDIR不为空,则改变为初始目录(CD之)。
+ 编辑了$HOME/.vimrc
1. 配置复制自win32版的gvim。
2. 加入syntax on:语法高亮。
3. 加入set nu:显示行号。
4. 加入set guifont:设置字体(console版本无效)
o 总结
+ MinGW:许多unix源码,很难在不修改的情况下直接编译
+ MinGW:作为windows native programe(不依赖emulation layer),可以胜任
+ MSYS:对宽字符的支持较差
+ FREEWARE
* Cygwin:GNU+Cygnus+Windows
o 下载时只选择必需的程序包
o 与MSYS近似的许多配置
o 编辑了/etc/bash.bashrc
+ export PATH
+ export INFOPATH
# 与MinGW不同,目录间用:号隔开
+ export MANPATH
o 设置常用目录的Mount Point
+ Cygwin无/etc/fstab文件,Mount Point通过命令行mount命令设置,设置在下次重启之后仍有效。
o 编译了新版本的Gcc及Gdb
o 编译了新版本的make
o 编译了termcap
o 编译了less
o 总结
+ 大多数unix源码都可以顺利编译
+ 对宽字符集支持较好
+ 编译的程序大多数依赖CygDLL
+ 非常丰富的程序库
+ FREEWARE
* GnuWin32:Win32 ports of tools with a GNU or similar open source license
o termcap
+ 在MSYS/MinGW环境下编译成功
o less
+ 需要termcap
+ 在MSYS/MinGw环境下无法编译
# 提示找不到langinfo.h
# 下载了libgw32c的lib版,修改makefile,main.c,filename.c之后,编译成功,但运行时出现错误。
+ 在Cygwin环境下编译成功
+ 用VC97编译成功
o libgw32c
+ 在MSYS/MinGw环境下无法编译
# 错误极多
+ 在Cygwin环境下无法编译
# 错误极多
+ 连接bin版某些程序可以编译
# 运行时出现错误
1. 以编译less为例
o wget
+ 用VC97编译成功
o 总结
+ 源代码大多在MSYS/MinGW下无法成功编译
+ 源代码对Microsoft VC友好
+ 源代码对Cygwin/MinGW友好
+ 作为独立的工具程式较有价值
+ FREEWARE

Some say he’s half man half fish, others say he’s more of a seventy/thirty split. Either way he’s a fishy bastard.