開発環境/ツール

【MinGW】無料のC/C++プログラミング環境をインストールしよう

はじめに

MinGWというWindows向けのGNUツールチェーンをご存じですか?

GNUツールチェーンが分からないんだけど…。

GNUツールチェーンっていうのはC言語などのプログラムを作るために必要なツール群のことなんです。

この記事の手順に沿ってインストールすれば無料のC/C++言語プログラミング環境がカンタンに構築できます。

Windows向けC/C++言語プログラミング環境で有名なのはVisual Studioって聞いたことあるけど。

確かに有名なのはVisual Studioですが、高くて個人で買うのはキツイため私はMinGWを使ってるんです。意外にいいですよ。

この記事を読んで欲しい方

  • Windows上でC/C++の開発を無料で行いたい方
  • DOS窓からコマンドを打つのは嫌いじゃない。むしろ好きな方。

MinGWについてカンタンに紹介

Wikipediaの概要を読んでみました。GNUツールチェーンをWindowsに移植したみたいですね。

MinGWミン・ジー・ダブリュー、Minimalist GNU for Windows)はGNUツールチェーンのWindows移植版である。MinGWはWindows APIのためのヘッダファイルを含んでおり、フリーのコンパイラであるGCCを、Windowsアプリケーションの開発のために利用できる。

MinGWプロジェクトでは、32bit環境向けの2つの主要なパッケージを開発、配布している。Windows環境に移植されたGCCは、コマンドラインから使用することも、IDEへ統合することもできる。もう1つのMSYS (minimal system) は軽量のUNIX風シェル環境であり、端末エミュレータのrxvtと、開発ツールのautoconfを実行可能にするためのPOSIXコマンド群とが含まれている。

この2つのパッケージは、Cygwinからフォークして誕生した。CygwinではWindowsの機能性を犠牲にすることで、より機能的なUnix風環境を提供している。なお、どちらのパッケージもフリーソフトウェアで、Win32APIを利用するためのヘッダファイルはパブリックドメインで提供されており、GNUツールの移植版はGPLである。MinGWの個々のGNUツール及びMSYSは、MinGWの公式サイトより入手可能である。

MinGW - Wikipedia

インストール手順(Windows10)

手順① MinGWのホームページに行きます。

 

手順② MinGWのホームページの左側ペインにある「Download」をクリックします。

 

手順③ ダウンロードページの真ん中ぐらいに「mingw-get-setup.exe」というリンクがあるので、青いボタンをクリックします。

手順④ 画面が開くと同時にインストーラ(EXE)の保存が聞かれるので「ファイルを保存」をクリックします。

手順⑤ インストーラ(EXE)をダブルクリックします。

手順⑥ 「Install」をクリックします。

手順⑦ 「Continue]をクリックします(設定変えたい人は変えてください)。

手順⑧ インストールが終わったら「Continue]をクリックします。

手順⑨ インストール管理画面が開きます。

手順⑩ 「mingw32-base-bin」を左クリックするとコンテキストメニューが出るので「Mark for Installation」をクリックします。

手順⑪ 同様に「mingw32-gcc-g++-bin」の「Mark for Installation」も有効にします。

手順⑫ メニューから「Installation」→「Apply Changes」をクリックします。

手順⑬ 「Schedule of Pending Actions」という画面が出るので「Apply」をクリックします。

手順⑭ インストールが終わったら「Applying Scheduled Changes」画面が出てくるので「Close」をクリックします。

※⑨で開いたインストール管理画面は閉じてよいです。

 

手順⑮ システムを開きます。

※「Windowsボタン」を押して「system」と入れると「システム」が候補に出てくるのでクリックします。「System Configuration」や「システム情報」ではありません。

手順⑯ 「システムの詳細設定」をクリックします。

手順⑰ 「環境変数」をクリックします。

手順⑱ 「Path」が選択された状態で「編集」をクリックします。

手順⑲ 「新規」を押して「C:\MinGW\bin」と入力して「OK」をクリックします。

※「環境変数」画面と「システムのプロパティ」画面をOKで閉じます。

手順⑳ コマンドを開きます。

※「Windowsボタン」を押して「cmd」と入れるとコマンドプロンプトが開きます。

手順㉑ コマンドプロンプトに「gcc --version」と入れてEnterを押すとGCCのバージョンが表示されます。これでインストールは完了です。

 

Hello World(サンプルプログラム)

超有名な「Hello World」と表示するプログラムをgccでコンパイルして実行します。

 

手順① コマンドを開きます。

※「Windowsボタン」を押して「cmd」と入れるとコマンドプロンプトが開きます。

手順② 適当なディレクトリを作ります。

例えばコマンドプロンプトに「mkdir c:\\temp」と打ちEnterを押し、「cd c:\temp」と打ちEnterを押すとこうなります。

手順③ コマンドプロンプトから「start .」と打ちEnterを押すと、エクスプローラが開き「C:\temp」に移動しています。

 

手順④ 「c:\temp」にtest.cというファイルを作り、メモ帳などで開き、以下の内容を入力して保存します。

/*
test.c
2020.1.26
pavement1234
*/
#include <stdio.h>

int main( int argc, char** argv )
{
printf("Hello World\n");
return 0;
}

手順⑤ コマンドプロンプトからgcc「gcc -g -o test test.c」でコンパイルを実施し「test.exe」を実行すると「Hello World」と表示されます。

 command
c:\temp>gcc -g -o test test.c
c:\temp>test.exe
Hello World c:\temp>

gdbによるデバッグ方法

gdbはフリーのデバッガです。デバッガとはプログラムをstep実行したり変数を見たりできるデバッグ支援プログラムです。

コマンドラインベースなのでちょっと使いにくいかもしれませんが、非常に高機能なので覚えれば鬼に金棒です。

 

手順① コマンドプロンプトから「gdb test.exe」でgdbを起動。gdbに「b main」でmain関数の頭にブレークポイントを張り「run」するとmain関数でブレーク(停止)しました。

 command
c:\temp>gdb test.exe
GNU gdb (GDB) 7.6.1
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "mingw32".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from c:\temp\test.exe...done.
(gdb) b main
Breakpoint 1 at 0x40141e: file test.c, line 10.
(gdb) run
Starting program: c:\temp/test.exe
[New Thread 16072.0x2ae4]
[New Thread 16072.0x3714] Breakpoint 1, main (argc=1, argv=0x1f1608) at test.c:10
10 printf("Hello World\n");
(gdb)  

手順② gdb画面から「step」と打つと「Hello World」と表示されます。以降、Enterを打ち続けるとプログラムが終了します。

 command
Breakpoint 1, main (argc=1, argv=0xab1608) at test.c:10
10 printf("Hello World\n");
(gdb) step
Hello World
11 return 0;
(gdb)
12 }
(gdb)
0x00401236 in __register_frame_info ()
(gdb)
Single stepping until exit from function __register_frame_info,
which has no line number information.
0x00401238 in __register_frame_info ()
(gdb)
Single stepping until exit from function __register_frame_info,
which has no line number information.
0x0040123d in __register_frame_info ()
(gdb)
Single stepping until exit from function __register_frame_info,
which has no line number information.
0x00401240 in __register_frame_info ()
(gdb)
Single stepping until exit from function __register_frame_info,
which has no line number information.
[Inferior 1 (process 456) exited normally]
(gdb)
The program is not being run.
(gdb)

手順③ gdb画面から「quit」と打つとgdbから抜けます(Ctrl+Cとかexitでは抜けられませんのでご注意を

 command
(gdb)
The program is not being run.
(gdb) quit c:\temp>

まとめ

MinGWをインストールしてgccでプログラムコンパイル、gdbでデバッグという一連の流れを試してみました。

C言語の細かい文法、gccのオプション、gdbデバッガの詳しい使い方などは、追々説明していきます。

  • この記事を書いた人
  • 最新記事

ペイヴメント

【名前】ペイヴメント 【職業】技術系サラリーマン 【住まい】東京 【好きなもの】プログラミング全般、デジタルガジェット、レトロゲーム、ライフハック、文房具、読書、家庭菜園、バンド演奏、お酒 【自己紹介】奥さん・息子2人とお気楽に暮らしています。

-開発環境/ツール

Copyright© ペイヴメントのエンジニア塾 , 2020 All Rights Reserved.