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」にチェックを入れました。

mingw-get-inst による MinGW セットアップ(1) - C++ 言語を利用する場合

mingw-get-inst による MinGW セットアップ(1) - C++ 言語を利用する場合

さらに、 MSYS も使いたいので、ツリーコントロールをスクロールし、一番下にある「MSYS Basic System」にもチェックを入れました。

mingw-get-inst による MinGW セットアップ(2) - MSYS を利用する場合

mingw-get-inst による MinGW セットアップ(2) - MSYS を利用する場合

インストーラは mingw-get をインストールし、この mingw-get を利用して GCC や MSYS などのコンポーネントをダウンロードし、インストールしてくれるようです。ちなみに、コントロールパネルからアンインストールを行うと、 mingw-get のみが削除されるようで、 mingw-get によってインストールされたそれ以外のプログラムはそのまま残るようです。

2010 年 9 月 2 日 by 村山 俊之

タグ: , ,

コメント / トラックバック 2 件

  1. Tweets that mention はらぺこ日誌» ブログアーカイブ » MinGW のインストール方法がガラッと変わっていた件 -- Topsy.com より:

    [...] This post was mentioned on Twitter by bsiyo, T.MURACHI. T.MURACHI said: mingw-get の使い方について軽く触れてみた。エラー発生後に使えなくなる場合の対処法とか。 / はらぺこ日誌» ブログアーカイブ » MinGW のインストール方法がガラッと変わっていた件 http://htn.to/9gB2tF [...]

  2. 村山 俊之 より:

    今、 http://sourceforge.net/projects/mingw/files/ を覗いてみたら、「Download Now!」のリンクボタンが mingw-get-inst になってた。こいつは恐らく以前のと同じ Inno Setup によるインストーラ。あとで試すが、どっちなんだよと叫びたくなるな… orz

コメントをどうぞ