2023-03-21
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.cpp | GitHub 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でコンパイルするしかなさそうだが、それはまだ試せていない。
※本記事内容の無断転載を禁じます。
ご連絡は以下アドレスまでお願いします★
Windowsのデスクトップ画面をそのまま配信するための下準備
WindowsでGPUの状態を確認するには(ASUS系監視ソフトの自動起動を停止する)
CORESERVER v1プランからさくらインターネットスタンダートプランへ引っ越しメモ
さくらインターネットでPython MecabをCGIから使う
さくらインターネットのPHPでAnalytics-G4 APIを使う
インクルードパスの調べ方
【Git】特定ファイルを除外する.gitignore
【Ubuntu/Debian】NVIDIA関係のドライバを自動アップデートさせない
【Python】Spacyを使用して文章から出発地と目的地を抜き出す
【Windows10】リモートデスクトップ間のコピー&ペーストができなくなった場合の対処法
Windows11+WSL2でUbuntuを使う【2】ブリッジ接続+固定IPの設定
Windows版Google Driveが使用中と言われアンインストールできない場合
VirtualBoxの仮想マシンをWindows起動時に自動起動し終了時に自動サスペンドする
【Apache】サーバーに同時接続可能なクライアント数を調整する
【C/C++】小数点以下の切り捨て・切り上げ・四捨五入
Googleファミリーリンクで子供の端末の現在地がエラーで取得できない場合
【Linux】iconv/libiconvをソースコードからインストール
Ubuntu Server 21.10でイーサリアムブロックチェーン【その5】