Windows の make でコマンドの挙動がおかしくなったときの解決策
問題
Windows にGnuMake を入れて使っていたところ、ある日make コマンドを実行したら以下のようなエラーが出た。
dir: cannot access '/s': No such file or directory
dir: cannot access '/b': No such file or directory
さらに
/bin/sh: del: command not found
とも。
なるほど、これはmakefile に書いてある$(shell ) の実行にcmd.exe ではなく/bin/sh が使われているゾ…
と思ってmakefile に以下を追加してみた。
SHELL=cmd
しかし結果は変わらず。
原因
しばしハマったけれど、環境変数のPATH を確認したところMinGW のパスが入っていて、そもそもmake コマンドがMinGW のmake を呼び出していて、GNUMake for Windows が使われていなかった。
対策
ユーザ環境変数のPATH に入っていたMinGW のパスを削除し、代わりにGNUMake for Windows のパスを追加。
まとめ
UNIX 系のツールをWindows にインストールすると、インストーラで自動的にPATH が追加されたりするケースがあるので、インストーラのオプションは読み飛ばさない方が良いですね。身近なところではGit for windows などでもインストール時のオプションによってcmd の挙動が変わったりします。
Windows コマンドが正しく動作しないときは何らかのターミナルエミュレータが動いている可能性を疑って調査するとよさそうです。
ディスカッション
コメント一覧
まだ、コメントがありません