2017-04-20 134 views

回答

1

MSYS2不是Unix环境。它是由这些主要组件组成的混合环境:

  1. POSIX仿真层名为msys-2.0.dll,这是cygwin的一个分支。
  2. 像GNU Make,Bash和ls这些依赖于msys-2.0.dll运行时的工具。
  3. pacman,另一个msys-2.0.dll程序,它允许您从MSYS2开发人员安装预编译的软件包。
  4. 原生Windows软件,它位于/mingw32(适用于32位)和/mingw64(适用于64位)目录下。

无论如何,似乎你刚刚开始使用MSYS2并且不太了解它。如果您的目标是编写可能会在MSYS2之外使用的本地Windows软件,那么您应该安装由MSYS2开发人员提供的本地Windows版Boost。因此,运行下面的命令之一:

pacman -S mingw-w64-i686-boost 

pacman -S mingw-w64-x86_64-boost 

然后确保你正在使用MSYS2壳的对味,并确保你安装相应的GCC工具链。对于32位开发,您必须使用“MinGW-w64 32位Shell”快捷方式启动MSYS2,并使用pacman来安装mingw-w64-i686-toolchainpacman -S mingw-w64-i686-toolchain)。

如果您尝试从boost网站下载二进制文件提示,您可能会遇到各种兼容性问题。最好使用使用MSYS2 GCC工具链构建的软件,特别是如果MSYS2已经有该软件的软件包。

+0

感谢您的明确解释!实际上,我有一个C++ Makefile项目,它使用'i686-w64-mingw32'编译。我需要为它添加一个'SignalR'客户端。构建它的依赖关系,我必须编译'cpprestsdk',但是'boost'有一些问题(请参阅http://stackoverflow.com/q/43517521/881712)。因此我也试图从源码编译它。 – Mark

+0

MSYS2开发人员使用以下脚本编译源代码:https://github.com/Alexpux/MINGW-packages/tree/master/mingw-w64-boost –