mieki256's diary



2024/05/30(木) [n年前の日記]

#2 [prog] MSYS2起動ファイルについてメモ

MSYS2 + MinGW64 をDOS窓上(cmd.exe)で使えるようにしたいと思って、そのあたりを少し調べていたのでメモ。

MSYS2インストールフォルダの下に、以下の起動ファイルがある。ちなみに、一般的には C:\msys64\ に MSYS2 をインストールするだろうけど、自分の環境では D:\msys64\ にインストールしてある。
D:\msys64\msys2_shell.cmd

--help をつけて起動すれば、オプションが表示される。
> D:\msys64\msys2_shell.cmd --help
Usage:
    msys2_shell.cmd [options] [login shell parameters]

Options:
    -mingw32 | -mingw64 | -ucrt64 | -clang64 | -msys[2]   Set shell type
    -defterm | -mintty | -conemu                            Set terminal type
    -here                            Use current directory as working
                                     directory
    -where DIRECTORY                 Use specified DIRECTORY as working
                                     directory
    -[use-]full-path                 Use full current PATH variable
                                     instead of trimming to minimal
    -no-start                        Do not use "start" command and
                                     return login shell resulting
                                     errorcode as this batch file
                                     resulting errorcode
    -shell SHELL                     Set login shell
    -help | --help | -? | /?         Display this help and exit

Any parameter that cannot be treated as valid option and all
following parameters are passed as login shell command parameters.

既にDOS窓を開いてる状態で、この起動ファイルを呼び出せば、MSYS2 + MinGW64が使える状態になる。
D:\msys64\msys2_shell.cmd -mingw64 -here -no-start

ただ、bash も起動してしまう…。cmd.exe のままにする方法はないのだろうか…?

batファイルを書いた :

以下は自分の環境に限定した話。以下のbatファイルを、PATH が通っている D:\home\bin\ に作っておいた、とメモしておく。
mingw32.bat ... 現在のディレクトリでbashを起動。
mingw64.bat ... 現在のディレクトリでbashを起動。
mingw64oncmd.bat ... 現在のディレクトリで、環境変数PATHとMSYSTEMだけ設定。bashを起動しない。
msys2_shell.bat ... 素の msys2_shell.cmd を呼び出す。オプションもそのまま渡す。

msys2_shell.bat の内容は以下。msys2_shell.cmd を呼び出しているだけ。
@set MSYS2DIR=D:\msys64
@call %MSYS2DIR%\msys2_shell.cmd %1 %2 %3 %4 %5 %6 %7 %8 %9

mingw64.bat の内容は以下。
@echo off
set MSYS2DIR=D:\msys64
CHCP 65001
SET MSYS=winsymlinks:lnk
CALL "%MSYS2DIR%\msys2_shell.cmd" -mingw64 -defterm -here -no-start
  • -mingw64 を渡して、MinGW64 が使えるようにしている。
  • -defterm で、DOS窓上での利用を指定。mintty は起動しない。
  • -here で、現在のディレクトリをカレントディレクトリにするように指定。
ただ、このbatファイルでは、bash が起動する。

mingw64oncmd.bat の内容は以下。環境変数 PATH と MSYSTEM の設定だけしている。bash は起動しないが、これでコンパイル等できるのかどうかは確認してない…。
@echo off

chcp 65001

set MSYS2DIR=D:\msys64

set ADDPATH=D:\home\YOURNAME\prefix\bin
set ADDPATH=D:\home\YOURNAME\bin
set ADDPATH=%ADDPATH%;%MSYS2DIR%\mingw64\bin
set ADDPATH=%ADDPATH%;%MSYS2DIR%\usr\local\bin
set ADDPATH=%ADDPATH%;%MSYS2DIR%\usr\bin
set ADDPATH=%ADDPATH%;%MSYS2DIR%\bin
@rem set ADDPATH=%ADDPATH%;C:\Windows\System32
@rem set ADDPATH=%ADDPATH%;C:\Windows
@rem set ADDPATH=%ADDPATH%;C:\Windows\System32\wbem
@rem set ADDPATH=%ADDPATH%;C:\Windows\System32\WindowsPowerShell\v1.0
set ADDPATH=%ADDPATH%;%MSYS2DIR%\usr\bin\site_perl
set ADDPATH=%ADDPATH%;%MSYS2DIR%\usr\bin\vendor_perl
set ADDPATH=%ADDPATH%;%MSYS2DIR%\usr\bin\core_perl
set ADDPATH=%ADDPATH%;D:\home\YOURNAME\gocode\bin

set PATH=%ADDPATH%;%PATH%
set MSYSTEM=MINGW64

@rem WindowsのPATHを引き継ぐかどうか
@rem set MSYS2_PATH_TYPE=inherit

echo # Add PATH
echo %ADDPATH%
echo.
echo # env
echo MSYSTEM=%MSYSTEM%
echo MSYS2_PATH_TYPE=%MSYS2_PATH_TYPE%

@echo on
@rem bash

参考ページ :


以上です。

過去ログ表示

Prev - 2024/05 - Next
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project