2012年2月アーカイブ

Eclipse CDT + MinGW

| コメント(0) | トラックバック(0)   このエントリーをはてなブックマークに追加 このエントリーを含むはてなブックマーク

MinGWのセットアップが終わったところで、
統合開発環境EclipseからMinGWを実行することを試みる。

MinGWだけでコンパイルできるんだから、
わざわざ統合開発環境なんぞ使わなくてもいいのだが、
プロジェクトを構成するファイルが複数にまたがってくると管理が覚束ないし、
コードフォーマット整形やインテリセンス(入力候補の提示)といった機能はありがたい。
Eclipseなら無料で使用できる上に、生成されたバイナリがEclipseに依存するわけでもない。

というわけでEclipseを導入する。

まず、というか、そもそも、EclipseはJavaの開発環境であったが、
有志により他の言語向けのプラグインが開発され、
そのうちの一つがC++用プラグインCDTである。

Eclipseそのものは、JavaVM上で動作するので、まずJavaVMを入手する。
(面倒な人は、All in One Eclipseを導入すればJVMごと入手できるが、
 現在のところ32bit向けしか公開されていない)

OracleのJava SEサイトからJava SE 6の最新バージョンを入手してインストールする。
(Java SE 7も公開されているのでそれでも大丈夫だと思うが、
 個人的には6の方が安定していそうな気がするので6を使用する)
JDKとJREが公開されているが、JDKの中にJREが入っているので、どちらでも構わない。

次にEclipse CDTのサイトから
"Download"のページを開き、最新版のCDTを入手する。
現在は"Eclipse package: Eclipse C/C++ IDE Indigo SR-1."が最新版のようだ。
ちなみにIndigoはEclipse3.7の別名。
ダウンロードページにて、"Download Links"から"Windows 64-bit"を選択し、
適当なミラーサイトからダウンロードする。

ダウンロードファイルはzip形式であるため、
ダウンロードしたら、適当な(間に半角スペースが存在しない)パスに展開する。

次に日本語化を行う。
英語版のままでも問題ない人はスルーで。

MergeDoc Projectから
Pleiadesの最新版を入手し、展開してEclipseのインストールフォルダにコピーする。
(詳しいインストール方法は、Pleiadesのreadmeを読むこと)

ではようやくEclipseを起動する。Eclipseインストールフォルダのeclipse.exeを実行するだけ。
「ようこそ」画面が表示されたらOK。

「ようこそ」画面の右上にある×ボタンを押して閉じ、新規プロジェクトを作成してみよう。
メニューの「ファイル」→「新規」→「C++ プロジェクト」を選択すると、新規作成ウィンドウが表示される。
プロジェクト名に"Sample"、プロジェクトタイプを「実行可能」→「空のプロジェクト」を選択する。
ここで、コンパイラを選択する。ウィンドウ右側の「ツールチェーン」にMinGWが表示されていれば、それを選択して
「完了」ボタンを押したらプロジェクトが生成される。

が、自分はツールチェーンにMinGWが表示されなかった。
何故だろう。
方々のWebサイトでは、環境変数PATHに(MinGWのインストールフォルダ)\binを追加すれば良いと書かれていたが、
自分はこれをやっても改善されず。

他のEclipse+MinGW導入手順サイトを見たり、
上のMergeDocで32bit用のAll in one Eclipseをダウンロードして
構成を比較したりしたところ、以下のいずれかのようにすればEclipseにMinGWが認識され、
Eclipseのツールチェーンに表示されることが判明した。

・MinGWをC:\MinGWにインストールする(これ以外のドライブやフォルダはNG)
・Eclipseのインストールディレクトリ配下にMinGWをコピーする

前者は、MinGWを他のパスに置いて、Eclispeの設定画面からMinGWのパスを設定してもダメなようだ。
逆に、C:\MinGWに置いてあれば、Eclipseで設定せずとも認識された。
後者は、Eclipseインストールフォルダ直下にmingwフォルダを配置する必要がある。

では次回は、この作成したプロジェクトでサンプルプログラムをコンパイルしてみよう。

登山

| コメント(0) | トラックバック(0)   このエントリーをはてなブックマークに追加 このエントリーを含むはてなブックマーク

およそ3年ぶりに登山してきました。
もちろん名古屋にある喫茶店の方です。

かれこれ10回目近い登山なので、
大抵のメニューでは驚かなくなりました。

というわけで、過去体験したことのないメニューに挑戦。

きしめん風チョコスパ
きしめん風チョコスパ
平日限定だそうです。
マウンテン特有の油っぽさがないので食べやすいメニューでした。
もちろん甘いので、普通のきしめんとは似ても似つかぬ味です。


あまりに無難に登頂できそうだったので、危険を冒してみることに。
名前からはどんなメニューか全く想像がつかない「マエストロ」を注文。
マエストロ
うわぁ...。

パンケーキでハンバーグとチーズを挟んであるのだけど
その隙間とパンケーキの上に、これでもかというほど
辛いソース(たぶんチリソース)が塗られている。
おまけに、とどめと言わんばかりに唐辛子が5本差してある。

辛い。パンケーキやハンバーグの味なんかわかりゃしない。

身体が受け付けなくなる前に、水と一緒に流し込むことで何とか登頂成功。
甘口メニューと並行して食べればよかったかも。

MinGW (64bit)のインストール

| コメント(0) | トラックバック(0)   このエントリーをはてなブックマークに追加 このエントリーを含むはてなブックマーク

まず、MinGWの64bit版を入手する。
なお、以下のリンク先は本記事作成時の情報であるため、
今後の状態は変更されている可能性があることをご留意いただきたい。

SourceForgeのMinGW-w64から、
"Browse All Files"→"Toolchains targetting Win64"→"Personal Builds"
→"sezero_4.5_20111101"の順にリンクを辿ると、次の5つのファイルが表示される。

  • mingw-w64-bin_i686-linux_20111101_sezero.tar.gz
  • mingw-w64-bin_i686-mingw_20111101_sezero.zip
  • mingw-w64-bin_x86_64-linux_20111101_sezero.tar.gz
  • mingw-w64-bin_x86_64-mingw_20111101_sezero.zip
  • README-mingw-w64-20111101_sezero.txt

解説ページによると、ファイル名の形式は次のようになっているとのこと。

<Target>[-Version]-<Src/Bin>-<Host>[-Cygwin Version]_<Date Code>[_personal tag].[extension]

<Target>は、"mingw-w32"または"mingw-w64"で、
前者はWin32用のバイナリを生成するバージョン、後者はWin64用のバイナリを生成するバージョン。
ここはWin64用のMinGW配布サイトであるため、前者のファイルはここでは公開されていない。

[-Version]は、"-1.0"または欠落。

<Src/Bin>は、配布されているアーカイブがソースコードであるか、実行形式であるか。
今回はコンパイラが手に入ればよいため、Binで良い。
というかBinしか公開されていない。

<Host>は、"i686-cygwin"または"i686-mingw"または"i686-darwin"または"x86_64-linux"または"i686-linux"で
MinGWを実行させる環境、つまり開発環境を選択する。
i686なら32bit用、x86_64なら64bit用となる。
上の5ファイルは、ここのいずれにも該当していないが、
x86_64-mingwで問題ないだろう。

[-Cygwin Version]はCygwinのDLLのバージョンらしいが、ここではどのファイル名でも欠落している。

<Date Code>はアーカイブが生成された年月日で、YYYYMMDD形式。
ここでは、2011年11月01日に生成されたようだ。

[_personal tag]は、作成者が個人でビルドしたパッケージに対して、その作成者名が付くらしい。
ここではsezeroさんがビルドしたようだ。

[extension]は拡張子。
ここでは、tar.gzか、zipとなる。

以上から、今回取得するパッケージは、上から4つ目の
mingw-w64-bin_x86_64-mingw_20111101_sezero.zipとなる。

ダウンロードしたら、適当なフォルダに展開する。
今回はD:\mingw64\に展開してみた。

さて、早速何かコンパイルしてみよう。
Cのプログラムを用意する。(test1.c)

#include <stdio.h>
 
int main()
{
    printf("hello,world.\n");
    return 0;
}

コマンドプロンプトから、
> D:\mingw64\bin\gcc test1.c -o test1.exe
と入力すると、コンパイルとリンクが行われ、test1.exeが出力される。
実行すると、標準出力にhello,world.と表示される。

方々のWebサイトでは、MinGWと同時にMSYSも入れているようだが、
少なくともコマンドプロンプトでコンパイルできることが分かった。
MSYSは最低限のUNIXコマンドを提供してくれるようだが、
特に必要でなければ、入れなくてもよさそうだ。
MinGWはzipを展開するだけでよかったが、
MSYSはインストール作業(いわゆるsetup.exeやmsiを起動すること)が要るみたいだから、
setup.exeで何がインストールされるか分からないことに比べると、
個人的には幾分抵抗が小さい。