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

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

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

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

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

MinGW

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

Q&A

解決済

2回答

853閲覧

VSCode+MinGWでMinGW周りの設定が上手くいかない

Iwan

総合スコア35

GCC

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

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

MinGW

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

0グッド

0クリップ

投稿2019/04/09 12:56

編集2019/04/09 13:38

<使用環境>
Windows10 64bit
VSCode 1.33

表題の通りVSCodeとMinGWを使ってC++のビルド環境を構築しようとしているのですが
MinGW周りの設定で問題が起きており何が原因か分からない為、
質問させて頂きます。

具体的には
①MinGW( mingw-get-setup.exe )をインストール
②Installation Managerで以下をインストール
・mingw32-base
・mingw32-gcc-g++
③システム環境変数に以下を追加
・C:¥MinGW¥bin
イメージ説明
④cmdでgcc -vで確認しようとしたところ以下エラーが出る
イメージ説明

原因が分からない為、ご教授いただけたら幸いです。
説明等で不足等ありましたらご指摘ください。

また質問枠で恐縮ですがVSCode側の設定に関して過去にこの環境作成を経験された方で
参考にされたサイト、方法等あれば教えて頂きたいです。

宜しくお願い致します。

>2019.04.09 22:36 追記
イメージ説明

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

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

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

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

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

y_waiwai

2019/04/09 13:04

gccをフルパスで記述したらどうなりますか
Iwan

2019/04/09 13:12

C:¥MinGW¥bin\gcc.exeを設定しcmd確認してみましたが同じエラー(cmdの)が出ました
y_waiwai

2019/04/09 13:16

ならgccはそこにはありません gccがどこにあるか探してみよう
Iwan

2019/04/09 13:23

gcc.exeファイル自体は上記場所にあるのですがある事を認識出来て無いと言う事でしょうか?
y_waiwai

2019/04/09 13:26

認識できないというのは聞いたことないですね。そこにあるというのはあなたの勘違いでは。
Iwan

2019/04/09 13:38

画像を添付させて頂きました。
退会済みユーザー

退会済みユーザー

2019/04/10 00:11

バックスラッシュ、エスケープ記号と表示が別々になっているから正しくはないのでは?
guest

回答2

0

この問題の原因は、フォルダーの区切り記号の文字コードの歴史的経緯を知らないとなかなか理解が難しいと思います。このあたりのキーワードで検索すると、その手の情報が多く見つかると思うので、ご参照されてみてはどうでしょうか。

結論から言えば、質問に記されたC:¥MinGW¥binという文字列に用いられている円記号は、Windowsがフォルダーの区切り記号として認識する文字コードU+005Cではなく、「円記号という文字」専用に割り当てられた文字コードU+00A5で記述されているために、正しくパスと認識されていないのが原因です。U+005Cは、一般的な日本語キーボードであればBackspaceの左側にあるキーで入力することができます。逆に、U+00A5は(Windowsでは)キーボードから直接入力することはできないので、何かしら一手間かける必要があったのではありませんか?手間をかけた上に期待した結果が得られないのでは、踏んだり蹴ったりですね。

下図は、U+005Cをバックスラッシュで表示するフォントであるNoto Sans CJK JPをインストールし、ワードパッドでそのフォントを指定して作成したものです。上が質問者様がこの質問に記述されたものをコピーペーストしたもの、下が区切り記号にBack Spaceの左側にあるキーで入力したものです。この結果からも、質問者様が入力した円記号はU+005Aであったことがわかります。

Windowsのシステムフォントでは、U+005CもU+00A5も円記号として表示してしまうため、見分けがつきません。Microsoftも、ぼちぼちシステムフォントやMS系フォントでも、U+005Cはバックスラッシュに固定してもいいんじゃないかと思うんだけどなあ。予告して半年から1年くらいクッションを置けば、そう大した問題も起きないのでは・・・と言いたいところだけど、未だに大手ショッピングサイトでも価格表記の円記号にU+005Cを平気で使っているところもあるし、簡単なことではないのかな。

投稿2019/04/09 23:54

編集2019/04/10 10:51
keicha_hrs

総合スコア6768

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

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

keicha_hrs

2019/04/10 00:08

余談だけど、実はUNIX系と同じく区切り記号に/を使っても正しく動作するんですよね。 C:\>/MinGW/bin/gcc -v と入力しても正しく動作するはずです。 ただ、/を標準に移行するのはさすがに大混乱が起きそう。
退会済みユーザー

退会済みユーザー

2019/04/10 00:15

環境変数はファイルプロトコルを利用するから問題ないが、悲しいことに引数は認識してくれないんだよね
Iwan

2019/04/11 06:16 編集

都合により遅くなり申し訳ないです。 ご指摘の通りでした。 その経緯を知らなかったです。 問題も解決出来、経緯や何故も知る事が出来ました。 ありがとうございました。
guest

0

ベストアンサー

環境変数に設定しているパスですが、

C:¥MinGW¥bin

バックスラッシュ\ ではなく、円マーク(U+00A5)となってます
これではちゃんとしたパスが表現できていません。

キーボードの右上にある\のキーで入力するようにしましょう

投稿2019/04/09 13:43

y_waiwai

総合スコア87749

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

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

Iwan

2019/04/11 06:17 編集

都合により遅くなり申し訳無いです。 ご指摘の点の通りでバックスラッシュ\で設定したところcmdで問題無く確認する事が出来ました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問