アプリケーション開発ポータルサイト
ServerNote.NET
Amazon.co.jpでPC関連商品タイムセール開催中!
カテゴリー【WindowsC/C++
【MinGW】Windowsでgcc/g++コンパイラを使って開発する
POSTED BY
2023-03-22

MinGW - Minimalist GNU for Windows

https://ja.osdn.net/projects/mingw/

を使えば、gcc, g++をはじめとするGNUソフトウェアがWindowsのPowerShellで実行できるようになる。(コマンドプロンプトでもいいが文字コードがShift_JIS以外は文字化けする)

インストール

上記サイトの中央に「mingw-get-setup.exe」リンクがあるので、クリックしてダウンロード、実行する。

MinGW自体はパッケージマネージャーである。C:\MinGWに、カラのディレクトリがセットアップされる。

デスクトップに「MinGW Installer」ができるので、実行する。

MinGW Installation Managerが立ち上がる。

今回の目的としては、gcc/g++の実行・コンパイル・テストであるので、最低限のインストールにする。

左タブで「Basic Setup」を選び、右タブのパッケージリストでは「mingw32-base-bin」「mingw32-gcc-g++-bin」を選び「Mark for Installation」でチェックを入れる。

メニューバー「Installation」→「Apply Changes」→「Apply」で決定し、パッケージのインストールを開始する。

終わると、「C:\MinGW」以下に、bin, include, lib, libexec, share, varといったUnix usr/localチックなディレクトリと、bin以下にはgcc/g++/gdb本体がインストールされていることが確認できる。

環境変数にパスを通す

このbinにパスを通せば、コマンドプロンプトからgccなどと打てる。

コントロールパネル→システムとセキュリティ→システム→右端の関連設定「システムの詳細設定」→「環境変数」→「システム環境変数」→「Path」→「編集」

とし、「新規」で「C:\MinGW\bin」を追加して、これまで開いたウインドウすべてで「OK」で閉じる。

ソースプログラムを書く

準備はできたので、適当なC++プログラムを書く。以下、vectorにstringを入れてcoutする例。

C/C++hello_vector.cppGitHub Source
#include <iostream>
#include <vector>
#include <string>

using namespace std;

int main(void) {

  vector<string> vec = vector<string>();

  vec.push_back(string("はろーわーるど"));

  cout << vec.front() << endl;

  return 0;
}

例として上記ソースをデスクトップに文字コードUTF-8/改行コードLFで保存した。

Windows PowerShellでコンパイル、実行

スタートメニュー→Windows PowerShell→Windows PowerShell を開く。

Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

新しいクロスプラットフォームの PowerShell をお試しください https://aka.ms/pscore6

PS C:\Users\hogeuser> cd Desktop
PS C:\Users\hogeuser\Desktop> g++ hello_vector.cpp -o hello_vector.exe
PS C:\Users\hogeuser\Desktop> ./hello_vector.exe
はろーわーるど
PS C:\Users\hogeuser\Desktop>

無事コンパイル、実行できた。

他の拡張パッケージを使う

たとえばlibiconvを使いたい場合

MinGW Installation Manager→All Packages→MinGW→MinGW Base System→MinGW Standard Libraries→mingw32-libiconv-devなどと探してチェックを入れ、Apply Changes でインストール。

libにlibiconv.a、includeにiconv.hが入る。OpenSSLは本家サイトでソースをダウンロードしてこのMinGWでコンパイルするしかなさそうだが、それはまだ試せていない。

※本記事は当サイト管理人の個人的な備忘録です。本記事の参照又は付随ソースコード利用後にいかなる損害が発生しても当サイト及び管理人は一切責任を負いません。
※本記事内容の無断転載を禁じます。
【WEBMASTER/管理人】
自営業プログラマーです。お仕事ください!
ご連絡は以下アドレスまでお願いします★

☆ServerNote.NETショッピング↓
ShoppingNote / Amazon.co.jp
☆お仲間ブログ↓
一人社長の不動産業務日誌
【キーワード検索】