質問: 現在Windows環境でVSCodeの環境開発を行っています。 コンパイラとしてg++を使う予定です。 ネットの記事を読んで、まずmsys2をインストールしました。 その後pacmanを使っていろいろなソフトをインストールしたのですが、ネットの記事通りやっていたら自分が今何をしているのかわからなくなってしまいました。そこで、調べてもよくわからなかったことを列挙しますので、お答えしていただけると助かります。 * msys2をインストールしただけではg++はついてこないのか? * msys2を起動しようと、windowsボタンの右にある検索窓にmsys2と打ち込むと、MSYS2 MSYSとMSYS2 MinGW 64-bitの二つが出てくるのですが、どちらを使えばいいのか? * この記事を参考にしたのですが、`$ pacman -Syuu`を実行すると、パッケージデータベースの更新とパッケージの更新をまとめて行う、とあるが、それはどいうことなのか?更新も何も最初は何もないのではないのか?実際にこのコマンドを実行するとmingwなどの文字列が羅列していくが、これでg++はダウンロードされるのか?されるならそれはどこにあるのか? * `$ pacman -S base-devel`を実行すると、何がダウンロードされるのか?`$ pacman -S mingw-w64-x86_64-toolchain`を実行すると何がダウンロードされるのか? 長くなりましたがどうかよろしくお願いします。
回答: > > msys2をインストールしただけではg++はついてこないのか? > > > はい。デフォルトではインストールされません。 MSYS2を使用する人全員が開発環境を必用とするわけではありませんので。 > > msys2を起動しようと、windowsボタンの右にある検索窓にmsys2と打ち込むと、MSYS2 MSYSとMSYS2 MinGW 64-bitの二つが出てくるのですが、どちらを使えばいいのか? > > > MSYS2上には * MSYS ネイティブアプリ(MSYS2上でのみ動作するアプリ) * MinGWアプリ(Msysの環境がインストールされていないPCでも動作するアプリ) の2つが混在しております。 ですので、どちらのアプリを開発したいのかで選択すると良いかと思います。 (MinGWを選択しても MSYSアプリを**使用**することはできます。) 当然GCCコンパイラ等のToolchainも、MSYS開発用とMinGW用がありますので必要な方のみをインストールしてください。 > > `$pacman -Syuu`を実行すると、パッケージデータベースの更新とパッケージの更新をまとめて行う、とあるが、それはどいうことなのか? > > > なんか `u`が一つ多い気がしますが・・。 MSYS2にインストール可能なパッケージ群は基本的にはネットワーク上のリポジトリに置かれており、パッケージ毎に都度更新(バージョンアップ)されております。 それらのパッケージのリストはローカルのデータベースに保存されており通常のパッケージのインストールなどではこのローカルのデータベースが使用されることとなります。 で、このローカルのデータベースを最新の情報に更新する処理が `$pacman -Sy` です。 更にインストール済みパッケージがある場合、上記のデータベースの情報に照らし合わせて最新のバージョンに更新する処理が `$pacman -Su` となります。 つまり `$pacman -Syu` はこの2つの処理を合わせて行う処理ということです。 > > 更新も何も最初は何もないのではないのか?実際にこのコマンドを実行するとmingwなどの文字列が羅列していくが、これでg++はダウンロードされるのか?されるならそれはどこにあるのか? > > > MSYS2をインストールすると初期状態で`shell`などのいくつかの最低限のパッケージはインストールされた状態です。ですのでこれらのインストール済みパッケージのみが更新されます。`g++`は初期状態ではインストールされておりませんので当然更新はされません。 > > `$ pacman -S base-devel`を実行すると、何がダウンロードされるのか? > > > 基本的な開発ツール * autoconf/automake/autogen/m4 * make/pkg-config/patch * diff/wget/gawk/grep/bison/sed 等がインストールされます。 詳細は `pacman -Ss base-devel` してみてください > > `$pacman -S mingw-w64-x86_64-toolchain` を実行すると何がダウンロードされるのか? > > > MinGW版のコンパイラー等なのToolchainが(gcc/ld)などがインストールされます。 詳細は `pacman -Ss mingw-w64-x86_64-toolchain` してみてください