Windows平台在采用mingw编译器的时候,为了为熟悉UNIX/LINUX环境的开发人员提供方便,推荐采用MSYS环境来实现。
MSYS简介
MSYS是一个小型的GNU环境,是一个通过将Linux源代码在Win32上编译而成的UNIX工作环境;
MSYS类似于Cygwin,但是由于工作原理的不同,速度更快、体积更小、功能强大、便于携带;
使用MSYS可以取代商业的VC环境,同样开发出商业版权的程序而不受任何版权限制;
mingw不支持UNIX/LINUX系统下的POSIX仿真层,但POSIX的某些功能可以被msvcrt提供(MSVC编译环境)。如果遇到此情况可以采取2种方式解决:
1 修改代码,采用其他方式实现;
2 可以在Cygwin编译环境下进行编译。
Unlike Cygwin, MinGW doesn't provide Linux or Unix system calls or a POSIX emulation layer. Some POSIX compatibility is provided by the supported runtime library, msvcrt.dll. A few additional functions are provided to help with portability. However, most likely a POSIX application would need to be ported to use Windows APIs in order to compile with MinGW, just as you would to compile with MSVC or Borland or Watcom C++.
MSYS下载与安装
前提:已安装mingw。
在安装Qt时已自动安装了mingw。可以拿来使用。(qt-sdk-win-opensource-2010.05.exe)
MSYS下载:
MSYS-1.0.10.exe: http://sourceforge.net/projects/mingw/files/MSYS/BaseSystem/msys-core/msys-1.0.10/MSYS-1.0.10.exe/download
MSYS安装:
根据要求设置即可。
在询问mingw的路径时,输入mingw所在地路径。(C:/Qt/2010.05/mingw)
MSYS使用
打开MSYS,到Makefile目录下,执行make命令即可。
注:Makefile需要自行生成。如果不熟悉,可以借助工具生成,如DEV C++。
其他
MSYS美化(msys.bat):
修改start rxvt -backspacekey -sl 2500 -fg %FGCOLOR% -bg %BGCOLOR% -sr -fn Courier-12 -tn msys -geometry 80×25 -e /bin/sh –login -i
为start rxvt -backspacekey -sl 2500 -fg white -bg black -sr -fn Courier-14 -tn msys -geometry 100×40 -e /bin/sh –login -i
man工具下载安装:
man依赖于groff,它们都可以在http://sourceforge.net/projects/mingw/files/MSYS/ 中下载到。下载当前版本:
groff-1.20.1-2-msys-1.0.13-bin.tar.lzma下载地址:http://sourceforge.net/projects/mingw/files/MSYS/groff/groff-1.20.1-2/groff-1.20.1-2-msys-1.0.13-bin.tar.lzma/download
man-1.6f-2-msys-1.0.13-bin.tar.lzma下载地址:http://sourceforge.net/projects/mingw/files/MSYS/man/man-1.6f-2/man-1.6f-2-msys-1.0.13-bin.tar.lzma/download
.lzma需要7zip工具来进行解压,7zip(http://www.7-zip.org/)下载地址:http://sourceforge.net/projects/sevenzip/files/7-Zip/9.20/7z920.exe/download
下载并解压后,拷贝到MSYS目录下(C:\msys\1.0)。现在就已存在了man命令。
但默认是没有manual文件的,需要自己去下载安装。可以去kernel.org的man-pages下载,man-pages-3.32.tar下载地址:http://www.kernel.org/pub/linux/docs/man-pages/
下载并解压后,打开MSYS,进入到解压后的目录,执行make命令。
此时出现了sh:install permission denied错误。它是由windows7的用户权限设置造成的,可以在控制面板--系统和安全--操作中心--更改用户帐户控制设置,将等级降到最低来解决(需要重启)。
但再次执行make时,出现 c:\msys\1.0\bin\install.exe:*** couldn't reserve space for cygwin's heap in child, win32 error 0.
此问题暂未解决。等待大侠帮助。
链接:MSYS中国项目