Windows 上で UNIX 環境を構築する手順のメモ。
MinGW †
主に Windows 上で GNU 開発をする為の環境。
MinGW インストール †
- ダウンロードサイトから MinGW-x.x.x.exe (インストーラ) をダウンロード。
- ダウンロードされた MinGW-x.x.x.exe をどこか適当なところへ移動。
- 実行したフォルダにいろいろダウンロードされるので、荒らされてもいい場所で。
- MinGW-x.x.x.exe (インストーラ) を起動。
- 「Download and Install」を選択して「Next」。
- お約束画面が出てくるので「I Agree」を押して次へ。
- パッケージは「Current」(最新バージョン) を選択して次へ。
- コンポーネントを選択する。
- 「MinGW base tools」は必ず選択。
- あとは開発したい言語によってお好みで選択。
よくわからなければ全部選択で。全部選んでも 160MB 程度。
- 選択したら「Next」。
- インストールフォルダを入力して「Next」。
- スタートメニューの名前を適当につけて「Install」。
- あとは勝手にダウンロードやインストールが実行される。
- 終わったら「Finish」。
- bin フォルダにパスを通しておく。
- 試しに次のようなコードを書いて、C:\Temp あたりに hello.c として保存。
#include <stdio.h>
int main(int argc, char** argv)
{
printf( "Hello World!\n" );
return 0;
}
- gcc でコンパイルしてみる。
C:\> cd Temp
C:\Temp> gcc hello.c -o hello.exe
- hello.exe が出力されるはずなので、実行してみる。
C:\Temp> hello
Hello World!
「Hello World!」が出力されれば、とりあえず OK。
msys インストール †
msys というのは、UNIX の端末画面(コマンドプロンプトみたいなやつ。POSIX というらしい)を Windows 上に提供するツール。
- msys のインストーラをダウンロード。
- ここ から MSYS-x.x.x.exe というやつを見つけてゲットする。
- MSYS Base System/msys-1.0.11 あたりにある。
※最新にはインストーラがないっぽい?
- MSYS-x.x.x.exe を起動。
- お約束画面などはさらっと流す。
- コンポーネントの選択では、多分選択肢は1個しかないのでそのままで。
- インストールフォルダの選択に、UNIX のホームディレクトリを置きたい場所を選ぶ。
- デフォルトで「C:\msys\1.0」になっている。
この場合、「C:\msys\1.0\home\(ユーザ名)」がホームディレクトリになる。
- スタートメニューは MinGW と同じ場所につくれば OK。
- インストールの最後にコマンドプロンプトが起動する。
- インストールを続けるかを聞いてくるので「y」を入力。
- MinGW がインストール済みか聞いてくるので「y」を入力。
- MinGW がインストールされているディレクトリを聞いてくるので、適切に入力。
- 「何かキーを押してください」になったら、そのまま Enter で終了。
- これでデスクトップ上に msys の起動ショートカットが作成される。
- msys の bin ディレクトリ(デフォルトで C:\msys\1.0\bin)をパスに追加。
あとは、必要に応じて追加モジュールをインストールする。
※ msysDTK あたりは入れておくと良い。
msys を起動すると
(ユーザ名)@(ホスト名) ~
$
というプロンプトが表示される。この時点でユーザのホームディレクトリ( msys のインストールディレクトリ/1.0/home/(ユーザ名) )がカレントになっている。
せっかくなので使ってみる。
まず、適当にディレクトリ作成。
$ mkdir work
これで /home/(ユーザ名)/work というディレクトリがつくられる。
そのディレクトリへ移動。
$ cd work
そこに hello.c という名前のファイルをつくってみる。
$ vim hello.c
※ vim というのは、いわゆる vi エディタ(UNIX標準のテキストエディタ)。
以下のソースを書いて :wq で保存終了。
#include <stdio.h>
int main(int argc, char** argv)
{
printf( "Hello World!\n" );
return 0;
}
※Windows な人は多分使い慣れないと思うので、上で作った hello.c をコピーしてきても OK。
コンパイルしてみる。
$ gcc hello.c -o hello
これで hello.exe がつくられるので、実行してみる。
$ hello
Hello World!
「Hello World!」が出力されれば OK。おお、UNIX でコンパイルできたぞ!みたいな。
補足 †
All-In-One Eclipse †
MinGW と msys は、All-In-One Eclipse に全部入ってるので、これを導入すれば上記手順はいらないかも。
ここから入手できる。
GCC の環境が欲しいなら、「Full All in One」の Ultimate か C/C++ を使えばよさそう。
GnuWin32 †
主に Windows 上で UNIX コマンドを使う為の環境。
Cygwin †
Windows 上で UNIX の全機能を使う為の環境。
Cygwin インストール †
主に C/C++ コンパイル環境のためのインストール方法ってことで。
- Setup.exe をダウンロード。
- Setup.exe を起動。
- Install from Internet を選択して次へ。
- Cygwin をインストールするフォルダを設定。
- デフォルトで C:\Cygwin
- このフォルダの下にホームディレクトリも作成される。
- 環境変数に HOME が設定されているとそこがホームになる。イヤな人は HOME を消しとく。
- 誰でも使えるようにするか、自分だけしか使えないようにするかを選択して次へ。
- 初回インストール時は、新たに Cygwin を入れちゃうよ!という警告が表示されるので、そのまま OK でスルー。
- 多分、Update しようとしてる人が間違って新しくインスコするのを防止したいんだと思う。
- Proxy の設定を問われる。
- Proxy を使ってない場合は Direct Connection で。
- IE の設定を使う場合は、Use IEx Setting で。
- Proxy サーバが分かる場合は一番下を選んで設定する。
- ダウンロードするサイトを選ぶ。
- どこでもいいけど、日本(.jp なサイト)を選ぶとちょっと早いかも。
- http と ftp がある場合は、ftp の方がちょっと早いかも。
- ftp で上手くいかない場合は http にすると良い。
- Select Packages の画面で、C/C++ コンパイラを選択する。
- Devel - gcc-core をクリック。Skip → バージョン番号 になれば OK。
- 同時に必要な他のモジュールも選択されるので、そのままで。
- それ以外は多分デフォルトのままで OK。
- vi エディタを使いたい場合は、標準の vi だと日本語が化けるので外しておいて、別途日本語対応したやつ(あるはず)を入れると良いかも。
- 気になるなら Editors の中をチラ見しとく。
- 次へ進むと、ダウンロードとインストールが始まる。
- 一通り終わったら、ショートカットとスタートメニューの作成を問われるので、よしなに。
- あと、GCC でコンパイルするためのパスが Cygwin 起動時に設定されるようにしておく。
(Cygwin インストールディレクトリ)/etc/profile を開いて、次の行を見つける
PATH=/usr/local/bin:/usr/bin:/bin:$PATH
export PATH
(31行目あたり)
この PATH と export の間にパスを追加。以下のような感じにする。
PATH=/usr/local/bin:/usr/bin:/bin:$PATH
PATH=/usr/include/:$PATH
PATH=/usr/include/mingw/:$PATH # ← mingw を入れた場合
export PATH
早速、デスクトップの Cygwin ショートカットをクリックして起動すると
(ユーザ名)@(ホスト名) ~
$
というプロンプトが表示される。この時点でユーザのホームディレクトリ( Cygwin のインストールディレクトリ/home/(ユーザ名) )がカレントになっている。このへんは msys と同じ感じ。
とりあえず使ってみる。
まず、適当にディレクトリ作成。
$ mkdir work
これで /home/(ユーザ名)/work というディレクトリがつくられる。
そのディレクトリへ移動。
$ cd work
そこに hello.c という名前のファイルをつくってみる。
$ vim hello.c
以下のソースを書いて :wq で保存終了。
#include <stdio.h>
int main(int argc, char** argv)
{
printf( "Hello World!\n" );
return 0;
}
コンパイルしてみる。
$ gcc hello.c -o hello
これで hello.exe がつくられるので、実行してみる。
$ ./hello
Hello World!
※ msys と違って、なぜか ./ を付けないと実行してくれないので注意。
「Hello World!」が出力されれば OK。
MLEXP. Wiki