別に、使いたい人は使えばいいんだけど。。。 (爆 MinGW/Msysのコンソール(or mintty(お勧め))又は、 MinGW/Msysのbinにパスを通してMS-DOSコマンドラインで使う時の話。 普通の使い方だけど。。。 make.exe がどうも良くないのだ 正確には「Msysのmake.exe」。 * 依存関係ファイル解析が激遅い orz gcc系(arm-none-eabi-gcc含む)のコンパイラで「-MD/-MMD」オプション等を使って依存関係ファイルを生成 した場合、依存関係ファイル数がある程度大きくなると解析に膨大な時間がかかり、 なかなかコンパイルが始まらないという現象。 makeが悪いのだった。orz * 回避方法 2回目以降のmake時に「make -r」とすれば良いらしい。 これだと1回目はやっぱり遅いのだった。 orz 根本的な解決になっていない。 LPCXpressoも困っている様だった :D : いくつか前のリリースノートに「make -r することにした」、 という記述があった。 その時は、「???」で放置していた。 LPCXpressoも内部で同様にMsysのmakeを使っているのだ。 って事は、1回目はorzなLPCXpresso xD 及び、コンパイルオプションを変更すると必ずフルビルドがかかるので、orz となる。 orz * 解決方法: MinGW/Msysを使わない: (1) Cygwin/Linuxなら無問題なので、この際乗り換える。 xD (2) 軽量な「gnupack」(注1)にする。(cygwinの軽量版) MinGW/Msysのmake.exeを使わない: 最終的にこの方法を選択した。。 (a) MinGWコンソールか、MS-DOSコマンドラインから「makeを削除します」$ mingw-get remove msys-make(b) 大丈夫なmake.exeに入れ替える。 http://sourceforge.net/projects/gnuwin32/files/make/3.81/ から、今なら「make-3.81.exe」をゲットして全角や空白を含まないフォルダにインストールします。 (c) Windowsの環境変数PATHに例えば、以下を追加しておきます。 c:\GnuWin32\bin これで大丈夫 (^^)/ と思ったものの、:D 大丈夫かどうかは確認が必要で、もしMinGW/Msysのコンソールからmakeが見えない時は、 ホームの「.bashrc」(.bashrcを使用している場合)或いは、「.profile」に以下を追加しておきます。export PATH=/c/GnuWin32/bin:$PATHコンソールを再起動して、whichで確認します。$ which make /c/GnuWin32/bin/make.exe(^^)/ (注1) 現バージョンは古そうなので、アップデートできないならパスした方が良いかも。 例のbashやsshのバグがあるし。
2014年11月12日
MinGW/Msysのmake.exeを使うな !? 2014
この記事へのコメント
コメントを書く