C++ 開発環境の準備 -MSYS2編-

(1/1)
C++ 開発環境の準備
今回は、統合開発環境 Eclipse を使わず、手軽にコマンドラインで GNU C++コンパイラ(G++)を使った開発環境の準備手順を紹介する。

目次

MSYS2 のインストール

まず、Windows上でLinuxと同じシェル環境(bash)を提供する MSYS2(Minimal SYStem2)を導入する。
公式サイト https://www.msys2.org/ からインストーラーをダウンロードする。2022年(令和4年)7月時点では64ビットのみの提供となっている。
デフォルトでは C:\msys64 にインストールされる。

インストールできたら、MSYS2 を起動し、次のコマンドを実行し、パッケージマネージャー pacman を使って、パッケージデータベースの同期とインストール済みパッケージのアップグレードを行う。
pacman -Syuu
つづいて開発パッケージ base-devel をインストールする。
pacman -S base-devel
最後に、MinGW 64ビット開発環境をインストールする。
pacman -S mingw-w64-x86_64-toolchain
必要に応じて、MinGW 32ビット開発環境もインストールしておこう。
pacman -S mingw-w64-i686-toolchain


インストールされた g++ のバージョンは、次のコマンドを使って確認できる。
g++ --version

ResEdit のインストール

リソースエディタ ResEdithttps://softfamous.com/resedit/ からダウンロードする。64ビット版(ResEdit-x64)を選んだ、

ダウンロードしたファイルを解凍する。
インストーラ方式ではなく、解凍したフォルダを任意のフォルダに移動するだけである。ここでは、先ほど作成した C:\msys64 の下に \ResEdit-x64 フォルダを作成し、そこへ移動した。
リソースエディタは C:\msys64\ResEdit-x64\ResEdit.exe である。ショートカットを作っておくといいだろう。

ResEdit の準備

ResEdit の準備
ResEdit を起動し、「メニュー→オプション→設定」を選ぶと上図のダイアログが開く。全般で言語を Japanese を選択する。
ResEdit の準備
includeする MinGW のヘッダファイルが必要となるので、先ほどのダイアログから「全般→INCLUDEパス」を選択し、
  • C:\msys64\mingw64\include
  • C:\msys64\mingw32\include
の2つを適用しておく。

doc2htmlhelp の準備

doc2htmlhelp(s7taka氏)は、https://www.vector.co.jp/soft/win95/prog/se455279.html からダウンロードできる。これ以外に、Microsoft HTML Help Workshop をインストールしておく必要がある。
ヘルプファイルの原稿は Microsoft Word で作成する。原稿ファイルができたら、"doc2htmlhelp.vbs" へドラッグ&ドロップすることでヘルプファイルを生成する。

Boost C++ライブラリ

C++標準ライブラリにない多くの機能を提供しているのがフリーのC++ソースライブラリ Boost C++ライブラリである。pacman を使ってインストールする。
pacman -S boost
64ビット版:
pacman -S mingw-w64-x86_64-boost
32ビット版:
pacman -S mingw-w64-i686-boost

cURLの導入

インターネット上のコンテンツを取得するプログラムを作るとき、コンピュータから見ると、ローカルドライブへのアクセスではなく、インターネットにアクセスしてファイルを読み込むことになるため、ファイルアクセスのためのプロトコルが異なる(PHPではプロトコルの違いを意識せずに  fopen  関数を使ってアクセスできる)。
そこで今回は、HTTPを含む様々なデータ転送プロトコルに対応しているオープンソースのライブラリ cURL (カール)  を導入する。pacman を使ってインストールする。
64ビット版:
pacman -S mingw-w64-x86_64-curl


32ビット版は無いが、"C:\msys64\mingw64\include\curl\" をそのまま "C:\msys64\mingw32\include\curl\" へコピーし、"C:\msys64\mingw64\lib\" にある "libcurl.a" と "libcurl.dll.a" をそのまま "C:\msys64\mingw32\lib\" へコピーすればよい。
cURLのダウンロード
"libcurl-x64.dll" が必要な場合は、公式サイトのダウンロードページから、Windowsの64bit用バイナリ・パッケージをダウンロードする。
"bin"フォルダに目的の "libcurl-x64.dll" が解凍されるので、これを適切なフォルダにコピーして利用する。

インストールされた cURL のバージョンは、次のコマンドを使って確認できる。
curl -V

OpenSSLの導入

インターネット上のコンテンツがhttpsプトロコルで提供されている場合、cURL をSSL対応にするため、オープンソースのライブラリ OpenSSL を導入する。
OpenSSLのダウンロード
公式サイトのダウンロードページから、ソース・プログラムをダウンロードする。(2020年8月時点の最新版 "openssl-1.1.1g.tar.gz")
続いて、Eclipse 付属の MSYS を使ってコンパイルする。
$ tar xzf openssl-1.1.1g.tar.gz
$ cd openssl-1.0.2
$ ./Configure mingw --prefix=/mingw
$ make
$ make install_sw
コンパイルに数分かかるが、気長に待つ。
"libssl-1_1-x64.dll", "libcrypto-1_1-x64.dll" は "googlenews.exe" 実行時に動的リンクされるので、同じフォルダか、"C:\Windows\System32" に配置すること。

インストールされた openssl のバージョンは、次のコマンドを使って確認できる。
openssl version

GMPの導入

GNU Multi-Precision LibraryGMP)は、任意精度の算術ライブラリで、longやdoubleを超える超える整数や浮動小数を、メモリ容量が許す限りの桁数・精度で扱うことができる。pacman を使ってインストールする。
pacman -S gmp
64ビット版:
pacman -S mingw-w64-x86_64-gmp
32ビット版:
pacman -S mingw-w64-clang-i686-gmp

参考サイト

(この項おわり)
header