2022-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.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でコンパイルするしかなさそうだが、それはまだ試せていない。


※本記事内容の無断転載を禁じます。

化粧水 美容液 乳液がこれ1本!【メンズ専用 NULLオールインワンジェル】

雑誌でも話題!美容室・サロンシェアNo,1ブランドNobbyから誕生した【Nobby by T ESCOM】

美白オールインワンジェル【SimiTRY(シミトリー)】

【菊芋粉末・極】】「菊芋はお高くて」「安全で美味しい菊芋をたっぷり使いたい」そんなお声にお応えしました。

【MOSH】なら無料で自分だけのホームページが作れる!

ヒゲ、体毛のお悩みに!メンズ用化粧水【MONOVOヘアアフターシェーブローション】

パチスロ中古実機販売なら【パチスロわっしょい】

“1万円から手軽に”投資ができる不動産クラウドファンディング【プレファン】

テレビで話題沸騰!ごはんがふっくらもちもちに炊ける【天海のにがり】

bitcoinjs-lib、bip32、bip39を使ってビットコインアドレスを生成する
Cannot read property makeRandom of undefinedと言われた場合
web3.jsとwindow.ethereumでコントラクト関数を引数つきでコールしプロパティを取得する
JavaScriptで外部URLのファイルをダウンロードしてデータを取得する
【MetaMask】window.ethereumのeth_callで任意のコントラクト関数を呼ぶ
window.ethereum.requestに渡すdataフィールドをABIエンコードで作成する
【Solidity】Remix IDEを使用してサーバー不要のコントラクト開発&デバッグ【Ethereum】
【Windows】Googleフォトからダウンロードした動画が音声のみで映像が再生されない場合
PostgreSQLをソースコードからインストールしてsystemdのサービスとして動かす
5chブラウザJane Styleの板一覧にゲーム板等が表示されない場合
【Windows10】リモートデスクトップ間のコピー&ペーストができなくなった場合の対処法
Windows版Google Driveが使用中と言われアンインストールできない場合
Googleスプレッドシートを編集したら自動で更新日時を入れる
【Javascript】JSON配列内にある特定要素の取得法【Node.js】
Googleファミリーリンクで子供の端末の現在地がエラーで取得できない場合
Ubuntuで固定IPアドレスを使う設定をする
【Anaconda3】指定した仮想環境でJupyter Notebookを動かす
Google ColaboratoryのTensorFlowバージョンを変更する(1.X←→2.X)