MinGWのgccがE:ドライブを探しに行って警告ダイアログが出る件

やー、久しぶりにmingw-get update; mingw-get upgradeとしてアップデートしたらはまりました。

mingw/msysを使ってる方は注意です。mingw64は セーフ。

詳細は以下

http://osdir.com/ml/MinGW-users/2013-10/msg00041.html

簡単に言うと「開発者のinclude設定がdefaultになっちゃってるから」です。

治し方

  • USBとかさしたりしてE:をある状態にする。
  • subst E: C:\hogehogeとかやる。確認してないけど多分いけるんじゃないかなー?
  • Binary Patchをあてる。開発者の人が書いてたあれ。E:をC:とかに書き換えれば?ってやつ。うん。これは治る。

って事で3番目のBinary Patchをしてみた。

対象ファイル

Eドライブを使っちゃってるBinary一覧は以下。もれがあったら教えてくださいm(_ _)m

./bin/c++.exe<br /> ./bin/cc.exe<br /> ./bin/cpp.exe<br /> ./bin/g++.exe<br /> ./bin/gcc-ar.exe<br /> ./bin/gcc-nm.exe<br /> ./bin/gcc-ranlib.exe<br /> ./bin/gcc.exe<br /> ./bin/gcov.exe<br /> ./bin/mingw32-c++.exe<br /> ./bin/mingw32-cc.exe<br /> ./bin/mingw32-g++.exe<br /> ./bin/mingw32-gcc-4.8.1.exe<br /> ./bin/mingw32-gcc-ar.exe<br /> ./bin/mingw32-gcc-nm.exe<br /> ./bin/mingw32-gcc-ranlib.exe<br /> ./bin/mingw32-gcc.exe<br /> ./lib/libdxerr8.a<br /> ./lib/libdxerr9.a<br /> ./lib/libgmon.a<br /> ./lib/libmingw32.a<br /> ./lib/libmingwex.a<br /> ./lib/libscrnsavw.a<br /> ./libexec/gcc/mingw32/4.8.1/cc1.exe<br /> ./libexec/gcc/mingw32/4.8.1/cc1plus.exe<br /> ./libexec/gcc/mingw32/4.8.1/collect2.exe<br /> ./libexec/gcc/mingw32/4.8.1/lto-wrapper.exe<br /> ./libexec/gcc/mingw32/4.8.1/lto1.exe<br /> ./mingw32/lib/libdxerr8.a<br /> ./mingw32/lib/libdxerr9.a<br /> ./mingw32/lib/libgmon.a<br /> ./mingw32/lib/libmingw32.a<br /> ./mingw32/lib/libmingwex.a<br /> ./mingw32/lib/libscrnsavw.a<br /> ./mingw32/libexec/gcc/mingw32/4.8.1/cc1.exe<br /> ./mingw32/libexec/gcc/mingw32/4.8.1/cc1plus.exe<br /> ./mingw32/libexec/gcc/mingw32/4.8.1/collect2.exe<br /> ./mingw32/libexec/gcc/mingw32/4.8.1/lto-wrapper.exe<br /> ./mingw32/libexec/gcc/mingw32/4.8.1/lto1.exe<br />

基本的に上記のファイルの e:/p/ を c:/p/ 等と置き換えれば良いのですが、以下のファイルは e:/p も c:/p に置き換える必要があります。

※ なぜかは分かりませんが、細切れになってる文字列が一か所あるためです。

./bin/c++.exe<br /> ./bin/cc.exe<br /> ./bin/cpp.exe<br /> ./bin/g++.exe<br /> ./bin/gcc.exe<br /> ./bin/mingw32-c++.exe<br /> ./bin/mingw32-cc.exe<br /> ./bin/mingw32-g++.exe<br /> ./bin/mingw32-gcc-4.8.1.exe<br /> ./bin/mingw32-gcc.exe<br />

ってことでBinaryでパッチあてて やっと元通り動くようになりました、、、(パッチ必要な人は適当にコメントでもください)。

そのうち Officialがちゃんと直すと思うので、それまではE:に適当なドライブを見せておくのが一番簡単だと思います。

余談

この問題にからんでmingw64とか調べてみたんですが、C:/temp/…とかをdefaultで検索しにいくようになってました。

いいんすかね、、、?