質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MSYS

MSYS(Minimal SYStem)は、Windows上で動くUnixシェル、テキスト操作ユーティリティなどをまとめたパッケージ。C言語やFortranのコンパイラであるMinGWをカバーする目的で作られています。

g++

g++はGNUコンパイラコレクション(gcc)のC++コンパイラーです。

GCC

GCCはGNU Compiler Collectionの略です。LinuxのC言語コンパイラのデファクトスタンダードであり、数多くの他言語やプラットフォームサポートもします。

MinGW

MinGW(ミン・ジー・ダブリュー)は GNUツールチェーンのWindows移植版です。 ランタイムライブラリと開発ツールで構成されています。

Q&A

解決済

1回答

2104閲覧

pacmanって何ですか?msys2って何ですか?

feyn

総合スコア26

MSYS

MSYS(Minimal SYStem)は、Windows上で動くUnixシェル、テキスト操作ユーティリティなどをまとめたパッケージ。C言語やFortranのコンパイラであるMinGWをカバーする目的で作られています。

g++

g++はGNUコンパイラコレクション(gcc)のC++コンパイラーです。

GCC

GCCはGNU Compiler Collectionの略です。LinuxのC言語コンパイラのデファクトスタンダードであり、数多くの他言語やプラットフォームサポートもします。

MinGW

MinGW(ミン・ジー・ダブリュー)は GNUツールチェーンのWindows移植版です。 ランタイムライブラリと開発ツールで構成されています。

1グッド

3クリップ

投稿2018/10/06 13:00

現在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を実行すると何がダウンロードされるのか?

長くなりましたがどうかよろしくお願いします。

kometanuki👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

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 してみてください

投稿2018/10/08 00:59

編集2018/10/08 02:04
magichan

総合スコア15898

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

feyn

2018/10/08 02:14

なるほど!わかりやすい説明ありがとうございます。 ただ、一つだけ分からなかったのが、「当然GCCコンパイラ等のToolchainも、MSYS開発用とMinGW用がありますので必要な方のみをインストールしてください。 」の部分です。 gccコンパイラにも種類があるのですか? それとも、MSYS用のgccはMSYSのシェルからしか使えないがMinGW用のgccは例えば、Windowsのコマンドプロンプトからも使用できる、ということですか? 何度もすみませんがよろしくお願い申し上げます。
magichan

2018/10/08 02:24

まずは pacman -Sl を実行してみてください。このコマンドで使用できるパッケージの一覧が見れるはずなのですが、先頭に "msys" とあるのが ネイティブアプリですので msys環境下のみで動作するアプリ、"mingw64/32" となっているのが msysに依存しないアプリですのでコマンドプロンプトなどからも使用することができます(当然PATHの設定は必用ですが)
magichan

2018/10/08 02:34 編集

でgccですが、(私の環境では)上記のリストに mingw32 mingw-w64-i686-gcc 7.3.0-2 mingw64 mingw-w64-x86_64-gcc 8.2.0-3 msys gcc 7.3.0-3 msys mingw-w64-cross-gcc 7.3.0-2 含まれております。上か順番に 32bit環境で動作する 32bit用MinGWコンパイラ 64bit環境で動作する 64bit用MinGWコンパイラ MSYS環境で動作する MSYS用コンパイラ MSYS環境で動作する MINGW用(クロス)コンパイラ ということになりますので、基本的に必用なものを1つインストールするとよいということになります
feyn

2018/10/08 02:39

回答ありがとうございました! すごく分かりやすかったです!! おかげさまで理解できたと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問