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中國項目