最近在研究編譯linux下的軟件到windows環境中。
發現了一個比cygwin更好玩的東西,那就是msys2
其實之前也在試玩mingw和mingw64,2016-08-12,當時的最新版本,mingw是自帶了msys的1.0的,但mingw64就啥都沒帶了
然后玩得也不是很順暢,編譯起來也有很多問題出現,而且沒法解決,直到發現了msys2
軟件主頁:https://sourceforge.net/projects/msys2/
安裝過程比較簡單,exe,雙擊安裝即可
安裝完后,會發現,根目錄下有三個相應的啟動文件
mingw32_shell.bat、mingw64_shell.bat、msys2_shell.bat
該不同的命令不同處僅設置了一個變量set MSYSTEM=*
在/etc/profile 文件中,我們可以看到,不同的值,會優先設置不同的path作為相關程序的調用
mingw32_shell.bat、mingw64_shell.bat分別會增加引用(或者說優先引用)/mingw32、/mingw64下的bin目錄
默認已經安裝了不少東西,我們增加編譯環境
pacman -S tar
pacman -S gcc
pacman -S make
真的是非常方便。
可是好像並沒有看到ming32和64的不同,也沒有發現相關的目錄,從命令中,可以發現,相關的軟件包分別對應不同的版本
$ pacman -Sl |grep gcc
mingw32 mingw-w64-i686-gcc 5.3.0-1
mingw32 mingw-w64-i686-gcc-ada 5.3.0-1
mingw32 mingw-w64-i686-gcc-fortran 5.3.0-1
mingw32 mingw-w64-i686-gcc-libgfortran 5.3.0-1
mingw32 mingw-w64-i686-gcc-libs 5.3.0-1
mingw32 mingw-w64-i686-gcc-objc 5.3.0-1
mingw64 mingw-w64-x86_64-gcc 5.3.0-1
mingw64 mingw-w64-x86_64-gcc-ada 5.3.0-1
mingw64 mingw-w64-x86_64-gcc-fortran 5.3.0-1
mingw64 mingw-w64-x86_64-gcc-libgfortran 5.3.0-1
mingw64 mingw-w64-x86_64-gcc-libs 5.3.0-1
mingw64 mingw-w64-x86_64-gcc-objc 5.3.0-1
msys gcc 4.9.2-6 [已安裝]
msys gcc-fortran 4.9.2-6
msys gcc-libs 4.9.2-6 [已安裝]
msys mingw-w64-cross-gcc 4.9.2-3
嘗試安裝其中一個
$ pacman -S mingw-w64-x86_64-gcc
正在解決依賴關系...
正在查找軟件包沖突...
軟件包 (15) mingw-w64-x86_64-binutils-2.25.1-1 mingw-w64-x86_64-bzip2-1.0.6-4
mingw-w64-x86_64-crt-git-5.0.0.4609.566d621-1 mingw-w64-x86_64-gcc-libs-5.3.0-1
mingw-w64-x86_64-gmp-6.1.0-1 mingw-w64-x86_64-headers-git-5.0.0.4609.566d621-1
mingw-w64-x86_64-isl-0.15-1 mingw-w64-x86_64-libiconv-1.14-5
mingw-w64-x86_64-libwinpthread-git-5.0.0.4573.628fdbf-1
mingw-w64-x86_64-mpc-1.0.3-2 mingw-w64-x86_64-mpfr-3.1.3.p0-2
mingw-w64-x86_64-windows-default-manifest-6.4-2
mingw-w64-x86_64-winpthreads-git-5.0.0.4573.628fdbf-1
mingw-w64-x86_64-zlib-1.2.8-9 mingw-w64-x86_64-gcc-5.3.0-1
下載大小: 47.34 MiB
全部安裝大小: 334.66 MiB
:: 進行安裝嗎? [Y/n] y
安裝完成,發現它自動安裝在了/mingw64目錄下
這時雙擊mingw32_shell.bat等bat,就會優先引用相對的bin
不過想在這上面直接編譯linux的程序,還是異想天開的,畢竟平台不同,源碼中引用的庫文件差別還是很大的。
軟件安裝和yum差不多,命令是
pacman -S <需要安裝的軟件名>
pacman -R <需要刪除的軟件名>
pacman -Q <可查看已安裝的所有軟件列表>
直接使用msys2_shell.bat來啟動系統,它就和cygwin差不多,
也是依賴於一個3M多的轉換庫msys-2.0.dll,但多了像yum的鏡像,更像是一個完整的linux環境。
在這上面安裝編譯軟件,和cygwin幾乎一樣,錯誤也幾乎一樣,所以參考我以前的文章即可。
目前不建議使用msys2,最新實現方式可見:https://www.cnblogs.com/skey_chen/p/13072990.html