Shell 選擇及安裝 GCC
Shell 選擇
當 MSYS2 安裝成功後,會有三種版本的 Shell 供您使用。
- 如果需要編譯32位元的版本的執行檔,就使用
MinGW-w64 Win32 Shell
- 如果需要編譯64位元的版本的執行檔,就使用
MinGW-w64 Win64 Shell
至於 MSYS2 Shell
和其他兩者又有何差別?
在 MSYS2 Shell 使用 gcc 編譯出來的執行檔會需要依賴 msys-2.0.dll,但是 MSYS2 Shell 有非常良好的 POSIX 支援。
一般來說 MSYS2 Shell 通常用於編譯 GNU 相關的 Linux 作業系統工具,或者需要編譯 POSIX 支援的軟體,才使用 MSYS2 這個 Shell。
其他差異
預設的情況下,MSYS2 系統安裝好時,所有工具的執行檔會放在:
- C:\msys64\usr\bin
如果有透過套件管理程式 pacman 安裝32位元或者64位元的特定版本的工具,則 MSYS2 會將其複製到對應的資料夾:
- C:\msys64\mingw32\bin
- C:\msys64\mingw64\bin
其他詳細的差異,可以直接比較各 Shell 環境底下的 /etc/profile 和 MSYSTEM 變數有關的判斷。
安裝 GCC(Gnu Compiler Collection)
讓我們先使用套件管理程式的搜尋看看有哪些和GCC相關的套件可以安裝
$ pacman -Ss gcc
mingw32/mingw-w64-i686-gcc 5.3.0-1 (mingw-w64-i686-toolchain)
GNU Compiler Collection (C,C++,OpenMP) for MinGW-w64
mingw32/mingw-w64-i686-gcc-ada 5.3.0-1 (mingw-w64-i686-toolchain)
GNU Compiler Collection (Ada) for MinGW-w64
mingw32/mingw-w64-i686-gcc-fortran 5.3.0-1 (mingw-w64-i686-toolchain)
GNU Compiler Collection (Fortran) for MinGW-w64
mingw32/mingw-w64-i686-gcc-libgfortran 5.3.0-1 (mingw-w64-i686-toolchain)
GNU Compiler Collection (libgfortran) for MinGW-w64
mingw32/mingw-w64-i686-gcc-libs 5.3.0-1 (mingw-w64-i686-toolchain)
GNU Compiler Collection (libraries) for MinGW-w64
mingw32/mingw-w64-i686-gcc-objc 5.3.0-1 (mingw-w64-i686-toolchain)
GNU Compiler Collection (ObjC,Obj-C++) for MinGW-w64
mingw64/mingw-w64-x86_64-gcc 5.3.0-1 (mingw-w64-x86_64-toolchain)
GNU Compiler Collection (C,C++,OpenMP) for MinGW-w64
mingw64/mingw-w64-x86_64-gcc-ada 5.3.0-1 (mingw-w64-x86_64-toolchain)
GNU Compiler Collection (Ada) for MinGW-w64
mingw64/mingw-w64-x86_64-gcc-fortran 5.3.0-1 (mingw-w64-x86_64-toolchain)
GNU Compiler Collection (Fortran) for MinGW-w64
mingw64/mingw-w64-x86_64-gcc-libgfortran 5.3.0-1 (mingw-w64-x86_64-toolchain)
GNU Compiler Collection (libgfortran) for MinGW-w64
mingw64/mingw-w64-x86_64-gcc-libs 5.3.0-1 (mingw-w64-x86_64-toolchain)
GNU Compiler Collection (libraries) for MinGW-w64
mingw64/mingw-w64-x86_64-gcc-objc 5.3.0-1 (mingw-w64-x86_64-toolchain)
GNU Compiler Collection (ObjC,Obj-C++) for MinGW-w64
msys/gcc 4.9.2-6 (msys2-devel)
The GNU Compiler Collection - C and C++ frontends
msys/gcc-fortran 4.9.2-6 (msys2-devel)
Fortran front-end for GCC
msys/gcc-libs 4.9.2-6 (base) [已安裝]
Runtime libraries shipped by GCC
msys/mingw-w64-cross-gcc 4.9.2-3 (mingw-w64-cross-toolchain mingw-w64-cross)
Cross GCC for the MinGW-w64
套件前面顯示的就是提供給特定的 Shell 環境使用的版本,以下是我們需要的三個套件:
- mingw-w64-i686-gcc -> MinGW-w64 Win32 Shell
- mingw-w64-x86_64-gcc -> MinGW-w64 Win64 Shell
- gcc -> MSYS2 Shell
透過套件管理程式安裝 GCC
pacman -S mingw-w64-i686-gcc
pacman -S mingw-w64-x86_64-gcc
pacman -S gcc
接下來可以分別在這三個 Shell 底下使用 gcc -v
來檢查是否安裝成功
看到類似這樣的輸出畫面,就可以確定已經安裝成功,下一章節將教導如何實際操作 GCC 編譯簡單的程式。