使用方法
简单的说,MSYS2 是MSYS的一个升级版,提供了bash shell,Autotools,版本控制软件和MinGW-w64 工具链。与MSYS最大的区别是移植了 Arch Linux的软件包管理系统 Pacman。有了 Pacman 升级系统,安装新软件包,还有解决软件包间的依赖问题就变得简单多了。 ? MSYS2开发环境搭建 ? ? ?
一、安装 MYSY2 ? 1. 下载地址 下载地址:http://msys2.github.io/ 32位机器安装:msys2-i686-20150916.exe 64位机器安装:msys2-x86_64-20150916.exe ? 2. 更新环境 更新本地软件包数据库: pacman -S --refresh 可以缩写为:pacman -Sy ? 然后升级软件包: pacman -S --refresh --sysupgrade 可以缩写为:pacman -Syu ? 3. 常用 pacman 命令 安装 pacman -S package-name ? 删除 pacman -R package-name ? 列出所有安装了的软件 pacman -Q --explicit 或者 pacman -Q -e ? 搜索软件包 列出可用的包,包含未安装的包 pacman -Sl 使用grep查找相关的包 pacman -Sl|grep package-name 使用正则查找 pacman -Ss package-name ? 比如我想安装gcc相关的软件,那么可以这样搜索 pacman -Ss gcc ? 运行环境说明: MSYS2安装根目录有三个执行脚本,分别是 msys2_shell.bat、mingw32_shell.bat 和 mingw64_shell.bat,查看内容可以看到其中只有一行区别,即是设定 MSYSTEM 变量。这个变量在 /etc/profile 中会用到。 ? 三个 .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,各套工具互不干扰。 ? 二、安装 GCC 随便哪个 shell.bat 下都可以 ? 1. 查看可用的安装包 pacman -Sl | grep gcc ? 可以看到以下三个 mingw32 mingw-w64-i686-gcc 4.9.1-3 mingw64 mingw-64-x86_64-gcc 4.9.1-3 msys gcc 4.8.2-2 ? 分别对应于 msys 的三个 .bat 环境。这里先装第一个,其他类似。 ? 2. 安装 pacman -S mingw-w64-i686-gcc MSYS2 会自动将这个包装在 msys64/mingw32 下,从之前的分析可知只有 mingw32_shell.bat 会用到这个目录下的程序。 ? 三、安装 make 查找make相关的make工具 pacman -Sl |grep make 很多包里都有make工具,安装 MSYS2 的make pacman -S make ? 四、安装 Git 搜索 git pacman -Sl |grep git ? 安装 MSYS2 的 git: pacman -S git ? 四、其他配置 ? 1. 要将常用工作目录映射到 MSYS2 的 ~ 下,可用 mount 命令(加入 home/username/.bash_profile 中): mount -fo binary,noacl,posix=0,user D:/docs ~/docs ? 这样打开 MSYS2 shell 后直接 cd docs 即可进入常用工作目录。 ? 2. 配置alias home/username/.bashrc 中,修改或增加,如 alias ll=‘ls -l‘ alias la=‘ls -lA‘
MSYS2 + MinGW-w64 + Git + gVim 环境配置一、安装 MSYS2先装 MSYS2 的好处是之后可以将 $HOME 设为 /home/name/,再装其他 *nix 系工具时配置文件都会放在 MSYS2 的 /home/name 下,方便管理。 1. 到 http://sourceforge.net/projects/msys2/ 下载安装。 安装位置设为 D:/develop/msys64 添加环境变量 HOME 为 D:developmsys64homename,这个变量非常有用,后面配置要多次用到。 2. 运行 msys2_shell.bat pacman -Sy 更新本地包数据 3. 升级核心包 pacman -S --needed filesystem msys2-runtime bash libreadline libiconv libarchive libgpgme libcurl pacman ncurses libintl
之后需要关闭所有 MSYS2 shell,然后运行 autorebase.bat 4. 升级其他包 pacman -Su 运行环境说明:可以看到 MSYS2 有三个执行脚本,分别是 msys2_shell.bat、mingw32_shell.bat 和 mingw64_shell.bat,查看内容可以看到其中只有一行区别,即是设定 MSYSTEM 变量。这个变量在 /etc/profile 中会用到: if [ -n "$MSYSTEM" ] then case "$MSYSTEM" in MINGW32) PATH="/mingw32/bin:${MSYS2_PATH}:${PATH}" PKG_CONFIG_PATH="/mingw32/lib/pkgconfig" MANPATH="/mingw32/share/man:${MANPATH}" TERMINFO=/mingw32/share/terminfo:${TERMINFO} ;; MINGW64) PATH="/mingw64/bin:${MSYS2_PATH}:${PATH}" PKG_CONFIG_PATH="/mingw64/lib/pkgconfig" MANPATH="/mingw64/share/man:${MANPATH}" TERMINFO=/mingw64/share/terminfo:${TERMINFO} ;; MSYS) PATH="${MSYS2_PATH}:/opt/bin:${PATH}" PKG_CONFIG_PATH="/usr/lib/pkgconfig:/lib/pkgconfig" TERMINFO=/usr/share/terminfo ;; *) 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,各套工具互不干扰。 二、安装 GCC随便哪个 shell.bat 下都可以 1. 查看可用的安装包 pacman -Sl | grep gcc
可以看到以下三个 mingw32 mingw-w64-i686-gcc 4.9.1-3 mingw64 mingw-64-x86_64-gcc 4.9.1-3 msys gcc 4.8.2-2 分别对应于 msys 的三个 .bat 环境。这里先装第一个,其他类似。 2. 安装 pacman -S mingw-w64-i686-gcc MSYS2 会自动将这个包装在 msys64/mingw32 下,从之前的分析可知只有 mingw32_shell.bat 会用到这个目录下的程序。 3. 运行 打开 mingw32_shell.bat 来试一下: gcc --version
gcc.exe (Rev3,Built by MSYS2 project) 4.9.1 Copyright (C) 2014 Free Software Foundation,Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
三、安装 Git1. 下载 Git for Windows。安装过程选择?Git cheetah plug-in?和?Run Git from Windows Command Prompt,这样 Vim 的 Vundle 插件可以调用 git。 由于安装 MSYS2 时已设置了 HOME 环境变量,Git 会自动将配置文件放在 HOME 下,将来在 MSYS2 中使用时共用一套配置,方便。 安装 MSYS2 的 git: pacman -S git 2. 设置 autocrlf 为 input。 git config --global core.autocrlf input
由于设置了 HOME 环境变量,可以使 gvim 和 MSYS2 的 vim 共用一套配置文件:~/.vimrc,插件也可以统一放在 ~/.vim/ 下。在使用 Vundle 时,git clone 出的代码是 unix 换行符可以避免 MSYS2 vim 读取 Vundle 插件文件时出错。 3. KDiff3 用作 diff 和 merge 工具很方便,也一并装了吧。装好后配置 Git: git config --global merge.tool kdiff3
git config --global mergetool.kdiff3.path "C:/Program Files/KDiff3/kdiff3.exe"
中间有空格也能正确处理。可以试一下 git mergetool 和 git difftool 看看是否配置正确了。为避免每次用 git difftool 时都提示确认,下面两行也可以设一下: git config --global mergetool.prompt false git config --global difftool.prompt false
四、安装 gVim 并配置 Vundle 进行插件管理1. 安装 gVim 到 D:developVim,组件选择 full 2. 由于设置了 HOME 环境变量,就可以将 gvim 的配置统一放在 HOME 目录下 将 Vim/vimfiles 下的所有文件夹删除,在 ~/.vim 下新建 bundle 文件夹 3. 参考 Vundle.vim 的教程设置好 Git 的 Curl 脚本: https://github.com/gmarik/Vundle.vim/wiki/Vundle-for-Windows 4. 将 gmarik/Vundle.vim git clone 到 ~/.vim/bundle 下: cd ~/.vim/bundle
git clone https://github.com/gmarik/Vundle.vim.git
5. 继续参考 Vundle.vim 的教程修改 ~/.vimrc 文件,将内容添加到开头处。虽然是在 Windows 环境下使用 gvim,但由于设置了 HOME 环境变量,以下设置按 Lunix 配置更方便: set rtp+=~/.vim/bundle/Vundle.vim call vundle#begin()
以后插件会自动安装在 $HOME/.vim/bundle 目录下。 6. 修改 .vimrc 添加要安装的插件包,然后在 gVim 中运行 :PluginInstall
7. 现在可以使用 :h vundle 来查看 Vundle 的帮助了。 五、其他配置1. 将 gVim 目录加入 Path 环境变量,设置 Git 使用 gvim 作为默认 editor: git config --global core.editor gvim
2. 要将常用工作目录映射到 MSYS2 的 ~ 下,可用 mount 命令(加入 .bash_profile 中): mount -fo binary,posix=0,user D:/docs ~/docs
这样打开 MSYS2 shell 后直接 cd docs 即可进入常用工作目录。 3. 其他工具的安装类似,查看 pacman 手册即可。常用的: 列出可用的包 pacman -Sl 安装 pacman -S package-name
删除 pacman -R package-name
4. 将配置同步到 github 上! a. 新建 repository UserConfig,添加 .gitignore 文件,内容为 *,默认忽略所有文件。 b. git clone 到本地 git clone https://github.com/tadvent/UserConfig.git
c. 将其中的 .git 目录和 .gitignore README.md 文件移动到 ~/ 下。 d. 新建 msys2 分支并添加要同步的文件,over~ git checkout -b msys2
git add -f .bash_profile .bashrc .gitconfig .vimrc
git commit git push origin master msys2
MSYS2的源配置msys2安装g++: pacman -S mingw-w64-x86_64-toolchain mingw-w64-i686-toolchain? http://mirror.bit.edu.cn/msys2/REPOS/ 修改msys2安装目录下的etcpacman.d文件夹里面的3个mirrorlist.*文件,依样画葫芦把镜像添加再更新即可 http://www.rswiki.org/%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1/msys2?rev=1416044574 复制代码 ## ## MSYS2 repository mirrorlist ## Changed on 2014-11-15 ## ##中国科学技术大学开源软件镜像 Server = http://mirrors.ustc.edu.cn/msys2/REPOS/MSYS2/$arch ##北京理工大学镜像 Server = http://mirror.bit.edu.cn/msys2/REPOS/MSYS2/$arch ##日本北陆先端科学技术大学院大学 sourceforge 镜像 Server = http://jaist.dl.sourceforge.net/project/msys2/REPOS/MSYS2/$arch ##The UK Mirror Service Sourceforge mirror Server = http://www.mirrorservice.org/sites/download.sourceforge.net/pub/sourceforge/m/ms/msys2/REPOS/MSYS2/$arch ## Primary Server = ftp://148.251.42.38/MSYS2/$arch ## Sourceforge.net Server = http://downloads.sourceforge.net/project/msys2/REPOS/MSYS2/$arch
## ## 64-bit Mingw-w64 repository mirrorlist ## Changed on 2014-11-15 ## ##中国科学技术大学开源软件镜像 Server = http://mirrors.ustc.edu.cn/msys2/REPOS/MINGW/x86_64 ##北京理工大学镜像 Server = http://mirror.bit.edu.cn/msys2/REPOS/MINGW/x86_64 ##日本北陆先端科学技术大学院大学 sourceforge 镜像 Server = http://jaist.dl.sourceforge.net/project/msys2/REPOS/MINGW/x86_64 ##The UK Mirror Service Sourceforge mirror Server = http://www.mirrorservice.org/sites/download.sourceforge.net/pub/sourceforge/m/ms/msys2/REPOS/MINGW/x86_64 ## Primary Server = ftp://148.251.42.38/MINGW/x86_64 ## Sourceforge.net Server = http://downloads.sourceforge.net/project/msys2/REPOS/MINGW/x86_64
## ## 32-bit Mingw-w64 repository mirrorlist ## Changed on 2014-11-15 ## ##中国科学技术大学开源软件镜像 Server = http://mirrors.ustc.edu.cn/msys2/REPOS/MINGW/i686 ##北京理工大学镜像 Server = http://mirror.bit.edu.cn/msys2/REPOS/MINGW/i686 ##日本北陆先端科学技术大学院大学 sourceforge 镜像 Server = http://jaist.dl.sourceforge.net/project/msys2/REPOS/MINGW/i686 ##The UK Mirror Service Sourceforge mirror Server = http://www.mirrorservice.org/sites/download.sourceforge.net/pub/sourceforge/m/ms/msys2/REPOS/MINGW/i686 ## Primary Server = ftp://148.251.42.38/MINGW/i686 ## Sourceforge.net Server = http://downloads.sourceforge.net/project/msys2/REPOS/MINGW/i686
MSYS2本身是用cygwin驱动的但它直接使用MINGW64来开发,所以编译出的程序是原生windows程序。我们可以直接从source force上下到? 使用 ‘pacman {-h –help}’ 及某个操作以查看可用选项? MSYS2开发环境搭建 软件安装下载msys2-x86_64软件包,双击安装到某根目录下,比如D:msys64。 pacman是MSYS2自带的软件管理工具:
MSYS2应用说明运行环境说明
制作软件包makepkgMSYS2官网的软件包是通过makepkg或makepkg-mingw制作的。?
常用软件包编译常用软件包我们可以简单的使用命令直接从官网安装即可,比如安装openssl:
有时候根据项目需要我们不得不自己动手编译依赖的软件包,以下是我在工作用到的库编译过程记录。 openssl
zlib
mkdir zlib32? http://www.360doc.com/content/16/0514/16/496343_559090195.shtml (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |