Windows平臺在采用mingw編譯器的時候,為了為熟悉UNIX/LINUX環(huán)境的開發(fā)人員提供方便,推薦采用MSYS環(huán)境來實現(xiàn)。
MSYS簡介
MSYS是一個小型的GNU環(huán)境,是一個通過將Linux源代碼在Win32上編譯而成的UNIX工作環(huán)境;
MSYS類似于Cygwin,但是由于工作原理的不同,速度更快、體積更小、功能強大、便于攜帶;
使用MSYS可以取代商業(yè)的VC環(huán)境,同樣開發(fā)出商業(yè)版權(quán)的程序而不受任何版權(quán)限制;
mingw不支持UNIX/LINUX系統(tǒng)下的POSIX仿真層,但POSIX的某些功能可以被msvcrt提供(MSVC編譯環(huán)境)。如果遇到此情況可以采取2種方式解決:
1 修改代碼,采用其他方式實現(xiàn);
2 可以在Cygwin編譯環(huán)境下進行編譯。
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安裝:
根據(jù)要求設(shè)置即可。
在詢問mingw的路徑時,輸入mingw所在地路徑。(C:/Qt/2010.05/mingw)
MSYS使用
打開MSYS,到Makefile目錄下,執(zhí)行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/ 中下載到。下載當(dāng)前版本:
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)。現(xiàn)在就已存在了man命令。
但默認(rèn)是沒有manual文件的,需要自己去下載安裝。可以去kernel.org的man-pages下載,man-pages-3.32.tar下載地址:http://www.kernel.org/pub/linux/docs/man-pages/
下載并解壓后,打開MSYS,進入到解壓后的目錄,執(zhí)行make命令。
此時出現(xiàn)了sh:install permission denied錯誤。它是由windows7的用戶權(quán)限設(shè)置造成的,可以在控制面板--系統(tǒng)和安全--操作中心--更改用戶帳戶控制設(shè)置,將等級降到最低來解決(需要重啟)。
但再次執(zhí)行make時,出現(xiàn) c:\msys\1.0\bin\install.exe:*** couldn't reserve space for cygwin's heap in child, win32 error 0.
此問題暫未解決。等待大俠幫助。
鏈接:MSYS中國項目