スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Windows XPにおけるMinGW GCC 4.5.0のセットアップのメモ

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

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


Windows XPにおけるMinGW GCC 4.5.0のセットアップ作業の手順を自分のためにメモ。

インストーラ「MinGW-5.1.6.exe」を使ってインストールすると、GCC 3.4.5がインストールされます。これについては、以下の記事を参照してください:

Windowsで使えるフリーのC/C++コンパイラ MinGW

現時点(2010年5月7日時点)で、Windows XPにおいてMinGWのGCCバージョン4を使うためには、インストーラを使わずにインストール作業を行う方法と、非公式パッケージとそのインストーラ(TDM's GCC/mingw32 Buildsなど)を利用する方法があります。以下、前者の作業手順を説明します。

必要なファイルの入手

必要なファイルは、以下のページからダウンロードできます:

Browse MinGW - Minimalist GNU for Windows Files on SourceForge.net

どのファイルが必要かという情報は、「gcc-4_5_0-1-mingw32_RELEASE_NOTES.txt」というテキストファイルに書かれています。このテキストファイルは、上記のページにおいて、GCC Version 4 → gcc-4.5.0-1と辿っていくと入手できます。

コマンドプロンプトでプログラムをコンパイルするという目的であれば、「Build requirements」の「MinGW Compiler」の項目に列挙されているファイルを入手すればよさそうです。

必要なファイル (Build requirements - MinGW Compiler)

GCC Version 4 → gcc-4.5.0-1:

  • gcc-core-4.5.0-1-mingw32-bin.tar.lzma
  • gcc-ada-4.5.0-1-mingw32-dll-4.5.tar.lzma
  • libgcc-4.5.0-1-mingw32-dll-1.tar.lzma
  • libgnat-4.5.0-1-mingw32-dll-4.5.tar.lzma

GNU Binutils → binutils-2.20.1:

  • binutils-2.20.1-2-mingw32-bin.tar.gz

MinGW Runtime → mingwrt-3.18:

  • mingwrt-3.18-mingw32-dev.tar.gz

MinGW pthreads-w32 → pthreads-w32-2.8.0-3:

  • libpthread-2.8.0-3-mingw32-dll-2.tar.lzma

MinGW mpc → mpc-0.8.1-1:

  • libmpc-0.8.1-1-mingw32-dll-2.tar.lzma

MinGW mpfr → mpfr-2.4.1-1:

  • libmpfr-2.4.1-1-mingw32-dll-1.tar.lzma

MinGW gmp → gmp-5.0.1-1:

  • libgmp-5.0.1-1-mingw32-dll-10.tar.lzma

MinGW API for MS-Windows → w32api-3.14:

  • w32api-3.14-mingw32-dev.tar.gz

注意事項

1. ブラウザによって、ダウンロードするとき、ファイルの拡張子が書き換えられてしまうことがあるので注意してください。例えば、「tar.lzma」が「tar.tar」になります。

2. lzma形式の圧縮ファイルは7-Zipで解凍可能です。7-Zipは以下のページから入手できます:

7-Zip

3. gcc-4_5_0-1-mingw32_RELEASE_NOTES.txtに書かれているファイルのうち、

  • libgnat-4.5.0_20100311-2-mingw32-dll-4.5.tar.lzma
  • gcc-ada-4.5.0_20100311-2-mingw32-bin.tar.lzma

の代わりに

  • libgnat-4.5.0-1-mingw32-dll-4.5.tar.lzma
  • gcc-ada-4.5.0-1-mingw32-dll-4.5.tar.lzma

を使用しています。

インストール

まず、インストール先のフォルダを作成します。ここでは「C:\MinGW」とします。

ダウンロードした圧縮ファイルをすべて同一のフォルダに置いて解凍します。すると、bin、libなどのフォルダができあがります。それらをそのまま、C:\MinGWフォルダの下にコピーします。

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

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

>gcc --version
gcc (GCC) 4.5.0
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.

C++について

必要なファイル

C++プログラムをコンパイルするためには、さらに以下のファイルが必要です:

GCC Version 4 → gcc-4.5.0-1:

  • gcc-c++-4.5.0-1-mingw32-bin.tar.lzma
  • libstdc++-4.5.0-1-mingw32-dll-6.tar.lzma

コンパイル時の警告メッセージ

g++でC++プログラム(ファイル名はhello.cppとする)

#include <iostream>

using namespace std;

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

  return 0;
}

をコンパイルすると、以下のような警告メッセージが表示されます:

>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に、既知の問題(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.

とりあえず、「-Wl,--enable-auto-import」をつけて実行すると、警告メッセージが表示されなくなります:

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

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

プロフィール

よしいず

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

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

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

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

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

リンク
月別アーカイブ
カテゴリ
最新記事
検索フォーム
RSSリンクの表示
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。