MSYS2開發環境搭建
軟件安裝
下載msys2-x86_64軟件包,雙擊安裝到某根目錄下,比如D:\msys64。
pacman是MSYS2自帶的軟件管理工具:
- 可通過修改msys64\etc\pacman.d下的三個文件修改軟件源,可供選擇的有:中國科學技術開源軟件鏡像、北京理工大學鏡像、日本北陸先端科學技術大學院大學SourceForge鏡像、The UK Mirror Service Sorceforge mirror等。
- 下載后的軟件包默認存放目錄msys64\var\cache\pacman\pkg;若命令行下載速度較慢,可以到到軟件源網站使用下載工具下載相應的軟件包,然后拷貝到此目錄,接着使用命令行進行安裝。
- 運行msys2_shell.bat:
pacman -Sy
更新本地包數據 - 升級核心包:
pacman -S --needed filesystem msys2-runtime bash libreadline libiconv libarchive libgpgme libcurl pacman ncurses libintl
, 之后需要關閉所有 MSYS2 shell,然后運行 autorebase.bat - 升級其他包:
pacman -Su
- 常用命令:
pacman -Q
查看已安裝的軟件包pacman -S -g
查看軟件組pacman -Q -g base-devel
查看軟件組包含的軟件pacman -Q -l vim
查詢軟件包的內容pacman -Q -s nettle
查詢軟件所在的包
- 查看工具幫助:
pacman -h
;pacman -S -h
-
建議通過安裝軟件組來安裝工具鏈
pacman -S mingw-w64-x86_64-toolchain pacman -S mingw-w64-i686-toolchain pacman -S base-devel pacman -S vim
MSYS2應用說明
運行環境說明
-
msys64\etc\fstab中可以配置文件目錄映射:比如配置
C:\Users\lenovo\Desktop /desktop
后,可以在終端直接cd /desktop
后可以直接切換到C:\Users\lenovo\Desktop目錄下。 -
任務欄快捷鍵:msys64\usr\bin\mintty.exe拖拽到任務欄上,右擊選擇屬性,將目標改成三種BAT腳本中的一個。
-
vim高亮配置:將msys64\etc\skel.vimrc拷貝到用戶目錄下。
-
MSYS2有三個執行腳本,分別是 msys2_shell.bat、mingw32_shell.bat 和 mingw64_shell.bat,查看內容可以看到其中只有一行區別,即是設定 MSYSTEM 變量。這個變量在 /etc/profile 中會用到:
MSYS2_PATH="/usr/local/bin:/usr/bin:/bin" MANPATH="/usr/local/man:/usr/share/man:/usr/man:/share/man:${MANPATH}" INFOPATH="/usr/local/info:/usr/share/info:/usr/info:/share/info:${INFOPATH}" MINGW_MOUNT_POINT= if [ -n "$MSYSTEM" ] then case "$MSYSTEM" in MINGW32) MINGW_MOUNT_POINT=/mingw32 PATH="${MINGW_MOUNT_POINT}/bin:${MSYS2_PATH}:${PATH}" PKG_CONFIG_PATH="${MINGW_MOUNT_POINT}/lib/pkgconfig:${MINGW_MOUNT_POINT}/share/pkgconfig" ACLOCAL_PATH="${MINGW_MOUNT_POINT}/share/aclocal:/usr/share/aclocal" MANPATH="${MINGW_MOUNT_POINT}/share/man:${MANPATH}" ;; MINGW64) MINGW_MOUNT_POINT=/mingw64 PATH="${MINGW_MOUNT_POINT}/bin:${MSYS2_PATH}:${PATH}" PKG_CONFIG_PATH="${MINGW_MOUNT_POINT}/lib/pkgconfig:${MINGW_MOUNT_POINT}/share/pkgconfig" ACLOCAL_PATH="${MINGW_MOUNT_POINT}/share/aclocal:/usr/share/aclocal" MANPATH="${MINGW_MOUNT_POINT}/share/man:${MANPATH}" ;; MSYS) PATH="${MSYS2_PATH}:/opt/bin:${PATH}" PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/share/pkgconfig:/lib/pkgconfig" ;; *) PATH="${MSYS2_PATH}:${PATH}" ;; esac else PATH="${MSYS2_PATH}:${PATH}" Fi
-
可見,三個 .bat 的區別就是 PATH 的設置,mingw32_shell.bat 優先使用 msys64/mingw32 下的工具,mingw64_shell.bat 優先使用msys64/mingw64 下的工具,而 msys2_shell.bat 兩個都不使用,只用自身 msys 的工具。這么做的好處是當需要編譯 32bit Target 的項目時使用 mingw32_shell.bat,64 bit 使用 mingw64_shell.bat,各套工具互不干擾。
制作軟件包makepkg
MSYS2官網的軟件包是通過makepkg或makepkg-mingw制作的。
可參
MINGW_INSTALLS=mingw64 makepkg -sLf --skippgpcheck
- http://sourceforge.net/p/msys2/wiki/Contributing%20to%20MSYS2/,
- C:\msys64\usr\share\pacman\PKGBUILD.proto
常用軟件包編譯
常用軟件包我們可以簡單的使用命令直接從官網安裝即可,比如安裝openssl:
- 32bit:
pacman -S mingw-w64-i686-openssl
- 64bit:
pacman -S mingw-w64-x86_64-openssl
有時候根據項目需要我們不得不自己動手編譯依賴的軟件包,以下是我在工作用到的庫編譯過程記錄。
openssl
-
64bit
mkdir openssl64 cd openssl64 tar zxvf openssl-1.0.2c.tar.gz cd openssl-1.0.2c ./configure mingw64 shared make make INSTALL_PREFIX=../ install
-
32bit
mkdir openssl32 cd openssl32 tar zxvf openssl-1.0.2c.tar.gz cd openssl-1.0.2c ./configure mingw shared make make INSTALL_PREFIX=../ install
zlib
- 32bit
mkdir zlib32
cd zlib32
tar zxvf zlib-1.2.8.tar.gz
cd zlib-1.2.8/
make -f ./win32/Makefile.gcc
make
make install -f win32/Makefile.gcc DESTDIR=../
參考
http://blog.csdn.net/callinglove/article/details/48601775
http://blog.csdn.net/callinglove/article/details/48601775