開発環境/ツール

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

【※ 当記事は2022年10月4日時点の情報です】

ペイヴメント(@pavement1234)です。

エンジニア
エンジニア
WindowsでC/C++言語を開発したい。
但し無料で使えるもの限定。

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

Windows向けのC/C++言語プログラミング環境はVisual Studioが有名ですが、
個人で買うには高すぎる(10万オーバー)ので、
簡単なプログラミングを試すだけならMinGWをオススメします。

Wikipediaで「MinGW」を調べると
GNUツールチェーン(C言語などのプログラムを作るために必要なツール群)を
Windowsに移植した
と書いてあります。
≫出典:MinGW(Wikipedia)

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 https://ja.wikipedia.org/wiki/MinGW

 

本記事の手順に沿って進めると、
無料のC/C++言語プログラミング環境がカンタンに構築できます。

インストール手順(Windows10向け)

  • MinGWをダウンロード
  • MinGWをインストール
  • インストール管理画面から設定変更
  • MinGWのパス(C:\MinGW\bin)を環境変数に設定

①MinGWのダウンロードページに行く(2022年10月4日更新)

≫MinGW Minimalist GNU for Windows
※MinGW ORGのページが消えましたので
ダウンロードページに直接行くことにしました。

②ダウンロードページの真ん中ぐらいに
「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というファイルを作り、
メモ帳などで開き、以下の内容を入力して保存

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

c:\temp>gcc -g -o test test.c

c:\temp>test.exe
Hello World

c:\temp>

エンジニア
エンジニア
これが有名なHello Worldですね。

gdbによるデバッグ方法

gdbはフリーのデバッガです。
デバッガとは
プログラムをstep実行したり変数を見たりできるデバッグ支援プログラムです。
コマンドラインベースなのでちょっと使いにくいかもしれませんが、
非常に高機能なので覚えれば鬼に金棒。

  • gdbを起動
  • メイン関数の先頭にブレークポイントを張る
  • ステップ実行する
  • gdbから抜ける

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

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.0×3714]

Breakpoint 1, main (argc=1, argv=0x1f1608) at test.c:10
10 printf(“Hello World\n”);
(gdb)

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

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では抜けられません

(gdb)
The program is not being run.
(gdb) quit

c:\temp>

まとめ

MinGWをインストールしてgccでプログラムコンパイル、
gdbでデバッグという一連の流れを試してみました。
C言語の細かい文法、gccのオプション、gdbデバッガの詳しい使い方などは
追々説明していきます。

ABOUT ME
ペイヴメント
ペイヴメントのエンジニア塾(当ブログ)では20年以上の経験から得られたプログラミング系ノウハウについてベテランにも満足して頂けるような内容の濃いコンテンツを初心者にも分かりやすい形で日々発信しています。【経歴】ベンチャーのソフトハウスで4年勤務後、精密機器メーカーのソフト開発部門に勤務し今に至ります。
error: Content is protected !!