MinGW のインストール方法がガラッと変わっていた (と思ったら元に戻っていた?) 件
メインマシンではなくノートパソコンの方にも MinGW を入れていたはずなのですが、何故か msys.bat
が消えていたりとなんだかいろいろと崩壊していたので、この際だからと最新の物をインストールすることにしました。
ところが、MinGW のダウンロードサイトにて「Download Now!」と書かれたリンクボタンをクリックすると、インストーラの exe ファイルではなく、何故か zip ファイルがダウンロードされ、展開すると謎のディレクトリ構成が…。
試しに生成された bin
ディレクトリ下の mingw-get.exe
ファイルをダブルクリックしてみますが、一瞬コマンドプロンプトが表示されるだけで、何も行われません。こいつはいったい何なのか?
ぐぐってみたところ、MinGW ポータルの Getting Started ページに行き当たりました。どうやら、上記で落としてきたファイルを C:\MinGW
ディレクトリ下に展開し、 C:\MinGW\bin
ディレクトリを環境変数 PATH
に追加した上で、コマンドプロンプトから
mingw-get install パッケージ名 [パッケージ名 ...]
とタイプすれば、お好みのパッケージのみをダウンロードし、よしなにインストールしてくれる、という物なのでした。 install
コマンドの他、update
コマンドや upgrade
コマンドも用意されているので、言わば apt-get
の MinGW 版、といったところでしょうか。
ただ、こいつを使ってインストールされる GCC が、 Getting Started のページでは 3.x 系であるとされていたのですが、実際には 4.5.0 がインストールされるようです (9/5 追記: すでにこの記述も 4.5 に修正されているようですね)。前回メインマシンに入れた GCC は 4.4.0 でしたが、 4.4.0 では <unorderd_map>
を利用するコードをコンパイルするのに -std=gnu++0x
オプションが必要であったのに対し、 4.5.0 では -std=c++0x
オプションでもコンパイルできてしまったりと、早くも微妙な相違点を見つけてしまい、どっちで統一すべきか迷ってみたり…
なお、 mingw-get
コマンドが知らないオプションを渡そうとした場合 (例えば、mingw-get install gcc
とタイプしようとして、誤って mingw-get gcc
などとタイプしてしまった場合)、深刻なエラーとやらが発生し、何故か mingw-get
コマンドを実行できない状態になってしまうようです。その場合は、C:\MinGW\bin\mingw-get.exe~
ファイルを mingw-get.exe
に、 C:\MinGW\libexec\mingw-get\mingw-get-0.dll~
ファイルを mingw-get-0.dll
に、それぞれリネームしてあげて下さい。それで再び使えるようになるはずです。
それから、必要な追加ライブラリの類は、相変わらず手動でインストールした方が良さそうです。 libiconv をインストールしようとしたのですが、 mingw-get でインストールできるのは msys-libiconv
というやつだけで、これだとどういう訳か MSYS 上ですらそのままではコンパイルできなかったりするので (コンパイル時にヘッダファイルのディレクトリとライブラリのディレクトリを指定し、実行時に DLL があるディレクトリのパスを通してやればよいのですが…面倒だし)。
2010年 9月 5日 日曜日 17:29:19 JST – 追記
今し方ダウンロードサイトを覗いてみたところ、 Inno Setup によるインストーラが復活しているようです。但し、以前までのインストーラとは若干毛色が違うようで、内部で mingw-get を利用する Web インストーラ的なものになっています。
インストーラは mingw-get-inst という名前で、現在「Download Now!」ボタンはこのインストーラにリンクしています。インストール方法は、基本的にはインストーラの exe ファイルを実行し、ひたすら Next ボタンを押し続けるだけです。但し、インストールする構成を指定する画面で、インストールしたいコンポーネントをいくつか選ぶ必要があります。
私の場合ですが、とりあえず C++ 言語は利用したいので、「C++ Compiler」にチェックを入れました。
さらに、 MSYS も使いたいので、ツリーコントロールをスクロールし、一番下にある「MSYS Basic System」にもチェックを入れました。
インストーラは mingw-get をインストールし、この mingw-get を利用して GCC や MSYS などのコンポーネントをダウンロードし、インストールしてくれるようです。ちなみに、コントロールパネルからアンインストールを行うと、 mingw-get のみが削除されるようで、 mingw-get によってインストールされたそれ以外のプログラムはそのまま残るようです。
2010 年 9 月 2 日 by 村山 俊之
2010 年 9 月 2 日 2:14 AM
[...] This post was mentioned on Twitter by bsiyo, T.MURACHI. T.MURACHI said: mingw-get の使い方について軽く触れてみた。エラー発生後に使えなくなる場合の対処法とか。 / はらぺこ日誌» ブログアーカイブ » MinGW のインストール方法がガラッと変わっていた件 http://htn.to/9gB2tF [...]
2010 年 9 月 5 日 4:53 PM
今、 http://sourceforge.net/projects/mingw/files/ を覗いてみたら、「Download Now!」のリンクボタンが mingw-get-inst になってた。こいつは恐らく以前のと同じ Inno Setup によるインストーラ。あとで試すが、どっちなんだよと叫びたくなるな… orz