亀の歩み

備忘録として

Windowsでgcc(MinGW)を使う

WindowsC言語コンパイルしたくて、gccを使うことにしました。

今回取り扱うのは、gccWindowsに移植したバージョンであるMinGWです。
他にもあるようですが、説明しているサイトが多いものにしました。

インストール

まずはインストーラーをダウンロードしました。
Getting Started | MinGW

実行しようとすると、「gcc.exeディスクがありません ドライブディスクがありません ディスクをドライブE:に挿入してください」とエラー。
調べてみると、開発者がEドライブを使用しているためのエラーとのこと……。
Windows8.1でMinGWをインストールしたのですが、動作確認時に分から... - Yahoo!知恵袋


仕方がないので、手元のインストーラーをゴミ箱に放り込んで、新しいインストーラーを使うことにしました。
http://mingw-w64.org/doku.php/start

Downloads→Mingw-buildsからダウンロードできました。

インストーラーを起動すると、settingの項目が並んだ画面が出てきます。
f:id:shinep:20160207052543p:plain

Qt で MinGW-w64 を使用する際に必要になるスレッドモデルと例外機構の選択について | cutlassfish

上のページを参考にして、項目を選んでいきます。
f:id:shinep:20160207052941p:plain
今回はこの組み合わせにしました。

後は、通常通りのインストール手順です。

パスを通す

インストールが終わったら、パスを通して、コマンドプロンプトでコマンドとして認識されるようにしていきます。
C言語入門 - MinGW - gcc の環境設定(パスを通す) - Windows環境 - Webkaru

コントロールパネル→システムとセキュリティ→システム
→システムの詳細設定→環境変数

ユーザー環境変数かシステム環境変数のどちらかのPATHを選択し、「編集」を押します。(分からない場合は、システム環境変数に)
先ほどインストールしたMinGw内のbinフォルダのパスを末尾にコピーします。

;C:\Program Files\mingw-w64\x86_64-5.3.0-win32-seh-rt_v4-rev0\mingw64\bin

※私の場合

複数ある場合は、浅い階層にあるbinのパスを入力してください。


これで、パスを通すことができました。

テスト

Hello worldを書いて、test.cとして保存しておきます。

#include <stdio.h>

int main(void) {
	printf("Hello World!");
	return 0;
}

パスを通したので、コマンドプロンプトに直でgccが打てます。

$ gcc test.c

もし、ヘッダが見つからない場合は、読み込むよう設定されているフォルダにヘッダを移動させる必要があります。
http://www.teradas.net/archives/12443/

$ a.exe

Hello worldが表示できました。


しかし、実行ファイルを直接実行した場合、すぐにコマンドプロンプトが閉じてしまいます。
これは、どうやらコマンドプロンプトの仕様のようです。
そのため、Hello worldを目視したければ、キーを押すまで終了させないような仕組みが必要となります。

#include <stdio.h>

int main(void) {
	printf("Hello World!");
	while(getchar() != '\n'); //キーを押すまでループし続ける
	return 0;
}

これで、じっくりHello worldを眺められるようになりました。