天天看點

MSYS2快速配置C++環境+ZSH

  1. 在MSYS2官網下載下傳MSYS2并安裝
  2. 換源。根據清華大學開源軟體鏡像站MSYS2 鏡像使用幫助操作。
  3. 完成後運作
    pacman -Syu
               
    會提示關閉MSYS2視窗。關閉後再次啟動MSYS2并運作
    pacman -Su
               
     注意:前者有時會更新pacman自身,這會導緻pacman的鏡像清單mirrolist被重置,需要重新換源。
  4. 執行
    pacman -S mingw-w64-x86_64-toolchain
               

    會安裝下列軟體倉庫:

       1) mingw-w64-x86_64-binutils  2) mingw-w64-x86_64-crt-git

       3) mingw-w64-x86_64-gcc  4) mingw-w64-x86_64-gcc-ada

       5) mingw-w64-x86_64-gcc-fortran  6) mingw-w64-x86_64-gcc-libgfortran

       7) mingw-w64-x86_64-gcc-libs  8) mingw-w64-x86_64-gcc-objc

       9) mingw-w64-x86_64-gdb  10) mingw-w64-x86_64-headers-git

       11) mingw-w64-x86_64-libmangle-git  12) mingw-w64-x86_64-libwinpthread-git

       13) mingw-w64-x86_64-make  14) mingw-w64-x86_64-pkg-config

       15) mingw-w64-x86_64-tools-git  16) mingw-w64-x86_64-winpthreads-git

       17) mingw-w64-x86_64-winstorecompat-git

    包括下列軟體包:

                mingw-w64-x86_64-bzip2-1.0.8-1

                mingw-w64-x86_64-ca-certificates-20190110-1

                mingw-w64-x86_64-expat-2.2.9-1  mingw-w64-x86_64-gettext-0.19.8.1-9

                mingw-w64-x86_64-gmp-6.2.0-1  mingw-w64-x86_64-isl-0.22.1-1

                mingw-w64-x86_64-libffi-3.3-1  mingw-w64-x86_64-libiconv-1.16-1

                mingw-w64-x86_64-libsystre-1.0.1-4

                mingw-w64-x86_64-libtasn1-4.16.0-1

                mingw-w64-x86_64-libtre-git-r128.6fb7206-2

                mingw-w64-x86_64-mpc-1.1.0-1  mingw-w64-x86_64-mpdecimal-2.5.0-1

                mingw-w64-x86_64-mpfr-4.1.0-2  mingw-w64-x86_64-ncurses-6.2-1

                mingw-w64-x86_64-openssl-1.1.1.g-1

                mingw-w64-x86_64-p11-kit-0.23.20-2  mingw-w64-x86_64-python-3.8.5-1

                mingw-w64-x86_64-readline-8.0.004-1

                mingw-w64-x86_64-sqlite3-3.32.3-2  mingw-w64-x86_64-tcl-8.6.10-1

                mingw-w64-x86_64-termcap-1.3.1-6  mingw-w64-x86_64-tk-8.6.10-1

                mingw-w64-x86_64-windows-default-manifest-6.4-3

                mingw-w64-x86_64-xxhash-0.7.4-1  mingw-w64-x86_64-xz-5.2.5-1

                mingw-w64-x86_64-zlib-1.2.11-7  mingw-w64-x86_64-zstd-1.4.5-1

                mingw-w64-x86_64-binutils-2.34-3

                mingw-w64-x86_64-crt-git-8.0.0.5966.f5da805f-1

                mingw-w64-x86_64-gcc-10.2.0-1  mingw-w64-x86_64-gcc-ada-10.2.0-1

                mingw-w64-x86_64-gcc-fortran-10.2.0-1

                mingw-w64-x86_64-gcc-libgfortran-10.2.0-1

                mingw-w64-x86_64-gcc-libs-10.2.0-1

                mingw-w64-x86_64-gcc-objc-10.2.0-1  mingw-w64-x86_64-gdb-9.2-1

                mingw-w64-x86_64-headers-git-8.0.0.5966.f5da805f-1

                mingw-w64-x86_64-libmangle-git-8.0.0.5573.a4de8df4-1

                mingw-w64-x86_64-libwinpthread-git-8.0.0.5906.c9a21571-1

                mingw-w64-x86_64-make-4.3-1  mingw-w64-x86_64-pkg-config-0.29.2-1

                mingw-w64-x86_64-tools-git-8.0.0.5903.3310d459-1

                mingw-w64-x86_64-winpthreads-git-8.0.0.5906.c9a21571-1

                mingw-w64-x86_64-winstorecompat-git-8.0.0.5903.3310d459-1

    下載下傳大小:      132.55 MiB

    全部安裝大小:  897.89 MiB

  5. 執行
    pacman -S mingw-w64-x86_64-cmake mingw-w64-x86_64-extra-cmake-modules
               

    包含下列軟體包:

                mingw-w64-x86_64-brotli-1.0.7-4  mingw-w64-x86_64-c-ares-1.16.1-1

                mingw-w64-x86_64-curl-7.71.0-1  mingw-w64-x86_64-jansson-2.12-1

                mingw-w64-x86_64-jemalloc-5.2.1-1  mingw-w64-x86_64-jsoncpp-1.9.2-1

                mingw-w64-x86_64-libarchive-3.4.3-1

                mingw-w64-x86_64-libidn2-2.3.0-1

                mingw-w64-x86_64-libmetalink-0.1.3-3

                mingw-w64-x86_64-libpsl-0.21.0-2  mingw-w64-x86_64-libssh2-1.9.0-2

                mingw-w64-x86_64-libunistring-0.9.10-2

                mingw-w64-x86_64-libuv-1.38.0-1  mingw-w64-x86_64-lz4-1.9.2-1

                mingw-w64-x86_64-nettle-3.6-1  mingw-w64-x86_64-nghttp2-1.41.0-1

                mingw-w64-x86_64-png2ico-2002.12.08-2

                mingw-w64-x86_64-rhash-1.3.9-1  mingw-w64-x86_64-cmake-3.17.3-1

                mingw-w64-x86_64-extra-cmake-modules-5.68.0-1

    下載下傳大小:      13.75 MiB

    全部安裝大小:  90.28 MiB

  6. 執行
    pacman -S mingw-w64-x86_64-clang
               

    包含下列軟體包:

               mingw-w64-x86_64-llvm-10.0.1-1  mingw-w64-x86_64-z3-4.8.8-1

               mingw-w64-x86_64-clang-10.0.1-1

    下載下傳大小:       459.23 MiB

    全部安裝大小:  2377.00 MiB

  7. 執行
    pacman -S help2man man-db man-pages-posix
               

    包含下列軟體包:

               groff-1.22.4-1  libpipeline-1.5.2-1  perl-Locale-Gettext-1.07-6

               help2man-1.47.15-1  man-db-2.9.3-1  man-pages-posix-2013_a-1

    下載下傳大小:       5.88 MiB

    全部安裝大小:  20.42 MiB

  8. 執行
    pacman -S zsh git vim
               

    包含下列軟體包:

                expat-2.2.9-1  heimdal-7.7.0-1  libpcre16-8.44-1  libpcre32-8.44-1

                libpcrecpp-8.44-1  libpcreposix-8.44-1  openssh-8.3p1-1

                pcre-8.44-1  perl-Authen-SASL-2.16-2  perl-Clone-0.45-1

                perl-Convert-BinHex-1.125-1  perl-Encode-Locale-1.05-1

                perl-Error-0.17029-1  perl-File-Listing-6.04-2

                perl-HTML-Parser-3.72-6  perl-HTML-Tagset-3.20-2

                perl-HTTP-Cookies-6.08-1  perl-HTTP-Daemon-6.12-1

                perl-HTTP-Date-6.05-1  perl-HTTP-Message-6.25-2

                perl-HTTP-Negotiate-6.01-2  perl-IO-HTML-1.001-1

                perl-IO-Socket-SSL-2.068-1  perl-IO-Stringy-2.113-1

                perl-LWP-MediaTypes-6.04-1  perl-MIME-tools-5.509-1

                perl-MailTools-2.21-1  perl-Net-HTTP-6.19-1

                perl-Net-SMTP-SSL-1.04-1  perl-Net-SSLeay-1.89_01-2

                perl-TermReadKey-2.38-2  perl-TimeDate-2.33-1  perl-Try-Tiny-0.30-1

                perl-URI-1.76-1  perl-WWW-RobotRules-6.02-2  perl-libwww-6.46-1

                git-2.27.0-1  vim-8.2.0869-1  zsh-5.8-3

    下載下傳大小:       19.44 MiB

    全部安裝大小:  102.94 MiB

  9. (可選)在/etc/bash.bashrc中添加export http_proxy="xxx"和export https_proxy="xxx"。
  10. 修改/etc/nsswitch.conf中的db_home為windows或指定路徑無效。在/etc/bash.bashrc中添加
    export HOME=/d/Documents/Programming/msyshome
               
    更改HOME目錄。再添加
    cd
               
    更改啟動目錄為~。參考How to change HOME directory and start directory on MSYS2?。
  11. 在更改後的HOME目錄下執行
    sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
               
    sh -c "$(wget https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)"
               
    安裝oh-my-zsh,然後在/etc/bash.bashrc中添加exec zsh。此時oh-my-zsh仍被安裝在系統環境變量$HOME目錄下。
  12. 生成passwd檔案:
    /usr/bin/mkpasswd.exe > /etc/passwd
               
    在msys2_shell.cmd中将
    rem set MSYS2_PATH_TYPE=inherit
               
    的rem去掉。由于Windows環境變量路徑有空格,是以MSYS實際上無法使用。
  13. (可選)将系統環境變量$HOME目錄下的.oh-my-zsh檔案夾移動到D:\Program_Files下,然後将.zshrc中的
    export ZSH="/e/Cadence/SPB_Data/.oh-my-zsh"
               
    改為
    export ZSH="/d/Program_Files/.oh-my-zsh"
               
    将MSYS Shell視窗的Options->Text->Font改為Powerline等字型,如JetBrains Mono。
  14. 将zshrc中的ZSH_THEME改為agnoster:ZSH_THEME="agnoster"。
  15. (可選)Windows Terminal配置:settings.json中的"profiles"下的"list"下添加
    {
        "guid": "{957f95a7-9539-46b8-b052-df39de1f1282}",
        "name": "MSYS2",
        "commandline": "D:\\Program_Files\\msys64\\msys2_shell.cmd -defterm -no-start -msys2",
        "icon": "D:\\Program_Files\\msys64\\msys2.ico"
    },
               
    (可選)ConEmu配置:Settings->General->Fonts更改字型;Settings->Startup->Tasks,{Bash::Msys2-64}中Commands預設為
    set CHERE_INVOKING=1 & set "PATH=%ConEmuDrive%\msys64\usr\bin;%PATH%" & %ConEmuBaseDirShort%\conemu-msys2-64.exe -new_console:p %ConEmuDrive%\msys64\usr\bin\bash.exe --login -i -new_console:C:"%ConEmuDrive%\msys64\msys2.ico"
               
    改為
    set HOME=D:\Documents\Programming\msyshome & set MSYS2_PATH_TYPE=inherit & set MSYSTEM=mingw64 & set "PATH=D:\Program_Files\msys64\usr\bin;%PATH%" & %ConEmuBaseDirShort%\conemu-msys2-64.exe -new_console:p D:\Program_Files\msys64\usr\bin\zsh.exe --login -i -new_console:C:"D:\Program_Files\msys64\msys2.ico"
               
    或建立{Msys2::MinGW64},Commands為
    set HOME=D:\Documents\Programming\msyshome & set MSYS2_PATH_TYPE=inherit & set MSYSTEM=mingw64 & set "D=D:\Program_Files\msys64" & %D%\usr\bin\zsh --login -i -new_console:C:"%D%\msys2.ico"
               

    其中第一個set設定HOME確定使用指定HOME目錄下的.zshrc(靈感來源于How do I change $HOME directory on MSYS2?);其他set指令部分參考了msys2使用conemu終端配置。

    (可選)Fluent Terminal設定:配置檔案->建立。名稱:MSYS2;可執行程式位置:D:\Program_Files\msys64\msys2_shell.cmd(如果點三個點選擇隻能選擇exe檔案,是以需要複制粘貼到文本框中);工作目錄:D:\Documents\Programming\msyshome;參數:-defterm -no-start -msys2;快捷鍵:自選。

繼續閱讀