2017-04-20 135 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 –