Windows XPにおけるC言語およびC++のセットアップ作業のメモ

これは古い記事です。より新しい情報は以下のページにあります:

Windows XPにおけるC言語およびC++のセットアップ作業のメモ 2012年3月版


Windows XPにおけるC言語およびC++のセットアップ作業の手順を自分のためにメモ。具体的には、MinGWのインストール手順。

2011年2月27日に記事を更新しました。

MinGWの入手とインストール

MinGW (Minimalist GNU for Windows)とは、GCC (GNU Compiler Collection)をWindowsに移植したものです。GCCとは、UNIX系OSでよく利用されているフリーのコンパイラです。

入手

以下のサイトから「mingw-get-inst-20110211.exe」をダウンロードします:

SourceForge.net:MinGW - Minimalist GNU for Windows

インストール

「mingw-get-inst-20110211.exe」はインストーラです。これを実行して、ウィザードに従ってインストール作業を進めます。

  1. Repository Catalogues:とりあえず、デフォルトのまま(Use pre-packaged repository catalogues)
  2. License Agreement:使用許諾契約。文章に目を通したら、「I accept the agreement」を選択
  3. Select Destination Location:インストール場所を選択。デフォルトは「C:\MinGW」
  4. Select Start Menu Folder:スタートメニューのフォルダ名。デフォルトは「MinGW」
  5. Select Components:「g++ compiler」「MinGW Developer ToolKit」の2つにチェックを入れる
  6. Ready to Install:インストールに関する設定を最終確認。「Install」ボタンをクリック

必要なファイルを取得するために、インストーラがインターネットにアクセスします。そのため、あらかじめインターネットに接続できる環境を整えておく必要があります。セキュリティソフトによる通信の遮断には気をつけてください。

また、ダウンロードされたファイルは、インストール場所を「C:\MinGW」(デフォルト)にした場合、C:\MinGW\var\cache\mingw-get\packages に置かれます。

最近(といっても、2010年9月頃から?)、MinGWのインストーラによってMSYS(Minimal SYStem)も同時にインストールできるようになりました。MSYSは、Windows上でUnixライクな環境を実現するためのもので、bash、make、tar等が使えるようになります。MSYSは、MinGW Developer ToolKitの中に含まれています。

PATHの設定

環境変数「PATH」の値に「C:\MinGW\bin」と「C:\MinGW\msys\1.0\bin」を追加します。

Windows XPの場合、システムのプロパティ→「詳細設定」タブ→「環境変数」ボタンで、環境変数の設定画面が開きます。

現在ログインしているユーザーだけが利用する場合にはユーザー環境変数の「PATH」に、すべてのユーザーが利用する場合にはシステム環境変数の「PATH」に登録します。

「PATH」変数がない場合は、「新規」ボタンをクリックして、変数名に「PATH」、変数値に「C:\MinGW\bin;C:\MinGW\msys\1.0\bin」のように記述します。 すでに「PATH」変数が存在するときは、「編集」ボタンをクリックして、変数値の間をセミコロン(;)で区切って追記します。一般に、PATHの値においては、複数のパスの間を「;」で区切ります。

Windowsでは、環境変数の名前に大文字・小文字の区別はありません。

動作確認

コマンドプロンプトを起動し、「gcc --version」「bash --version」を実行して、gccおよびbashのバージョンに関する情報が表示されればインストールは成功です:

>gcc --version
gcc (GCC) 4.5.2
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

>bash --version
GNU bash, version 3.1.17(1)-release (i686-pc-msys)
Copyright (C) 2005 Free Software Foundation, Inc.

MinGWのアンインストール

  1. [スタート]→[すべてのプログラム]→[MinGW]→[Uninstall mingw-get]を選択するか、アプリケーションの追加と削除から「MinGW-Get version 0.1-alpha-5」のアンインストールを行う
  2. C:\MinGW にあるすべてのファイルを削除
  3. 環境変数「PATH」から「C:\MinGW\bin」および「C:\MinGW\msys\1.0\bin」を削除

MinGWの使い方

C言語

以下のようなプログラムを作成し、「hello.c」という名前で保存したとします。

#include <stdio.h>

int main(void)
{
  printf("Hello, C!\n");

  return 0;
}

これをコンパイルするには、コマンドラインにおいて、cdコマンドでソースファイルのあるディレクトリ(=フォルダ)に移動したのち、gccコマンドを実行します:

> gcc hello.c -o hello

そうすると、実行形式のファイル「hello.exe」ができあがります。これを実行すると、以下のようになります:

> hello
Hello, C!

C++

以下のようなプログラムを作成し、「hello.cpp」という名前で保存したとします。

#include <iostream>

using namespace std;

int main()
{
  cout << "Hello, C++!" << endl;

  return 0;
}

これをコンパイルするには、コマンドラインにおいて、cdコマンドでソースファイルのあるディレクトリ(=フォルダ)に移動したのち、g++コマンドを実行します:

> g++ hello.cpp -o hello -Wl,--enable-auto-import

あるいは、gccコマンドに「-l stdc++」オプションをつけると、C++のソースファイルがコンパイルできます。

> gcc hello.cpp -o hello -l stdc++ -Wl,--enable-auto-import

そうすると、実行形式のファイル「hello.exe」ができあがります。これを実行すると、以下のようになります:

> hello
Hello, C++!

「-Wl,--enable-auto-import」オプションについての補足

上のC++プログラムをg++において「-Wl,--enable-auto-import」オプションなしでコンパイルすると、以下のような警告メッセージが表示されます:

> g++ hello.cpp -o hello
Info: resolving std::cout  by linking to __imp___ZSt4cout (auto-import)
c:/mingw/bin/../lib/gcc/mingw32/4.5.0/../../../../mingw32/bin/ld.exe: warning: a
uto-importing has been activated without --enable-auto-import specified on the c
ommand line.
This should work unless it involves constant data structures referencing symbols
 from auto-imported DLLs.

このことは、gcc-4.5.0-1-mingw32.RELEASE_NOTES.txt (SourceForge の MinGWのページ → Files → MinGW → BaseSystem → GCC → Version4 → gcc-4.5.0-1の下)に、既知の問題(Known Issues)として書かれています。以下、引用:

When linking C++ modules with shared libstdc++ (the default), the
linker may warn about activating auto-import. The workaround is to
add one of the following flags:
a) -Wl,--enable-runtime-pseudo-reloc-v2
   The warning is still printed, but is now harmless.
b) -Wl,--enable-auto-import
   Actually does what the warning suggests.
c) -static-libstdc++
   Avoids creating the issue in the first place.
d) none of the above.
   You may get a 0xc0000005 error at runtime.

MinGW Shellについて

コマンドプロンプトの代わりに、MinGW Shellを利用することもできます。

MinGW Shellは、[スタート]→[すべてのプログラム]→[MinGW]→[MinGW Shell] と辿ることで起動できます。あるいは、C:\MinGW\msys\1.0\msys.batをダブルクリックすると起動できます。

ホームディレクトリ(MinGW Shellを起動した直後のカレントディレクトリ)の実体は、デフォルトでは「C:\MinGW\msys\1.0\home\user」です。環境変数「HOME」が設定されていると、その値に記されたパスがホームディレクトリになります。

関連記事

Windows XPにおける各種プログラミング言語のセットアップ作業のメモ まとめ

古い記事

Windows XPにおけるMinGW GCC 4.5.0のセットアップのメモ
Windowsで使えるフリーのC/C++コンパイラ MinGW

【theme : プログラミング
【genre : コンピュータ

プロフィール

よしいず

Author:よしいず
MATHEMATICS.PDFというウェブサイトを運営しています。

管理の都合上、トラックバックとコメントはオフにしてあります。ブログ経験者なら分かっていただけると思いますが、スパム(アダルトやその他の宣伝)ばかりなのが現実です。

リンクは自由です。当サイトの記事に対する間違いの指摘・意見・感想などを述べた記事からのリンクは歓迎です。ただし、ブログ記事アップ直後はミスが多く、頻繁に修正します。場合によっては削除する可能性もあります。その際、何も断りもなく修正・削除しますがご了承ください。内容を参考にする場合には投稿後一週間ほど様子を見てからにしてください(笑)。

記事の間違いを指摘するときは、その具体的箇所、理由(仕様に反するなど)・根拠(参考にした文献など)、代替案(同じ結果を得るための正しいやり方)も教えてください。そうしないと、(指摘される側および第三者はその時点では無知の状態なので、)どこが間違いなのか分かりませんし、本当に間違っているのかどうかが判断・検証できません。実際、間違いだと指摘されたことが結局は正しかったというケースもありますので。

このブログのタイトル一覧

リンク
月別アーカイブ
カテゴリ
最新記事
検索フォーム
RSSリンクの表示