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

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

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

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

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

C++

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

MinGW

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

Q&A

解決済

1回答

9521閲覧

【C++】VSCodeでinclude エラーがでるようになりました

user14

総合スコア125

g++

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

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

C++

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

MinGW

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

0グッド

0クリップ

投稿2019/12/14 14:44

編集2019/12/15 07:07

Windows10、MinGWでg++を使用しています。
いままで問題なく使えていたのですが、久しぶりに使おうとしたらincludeエラーがでるようになっていました。

#include エラーが検出されました。includePath を更新してください。この翻訳単位 (C:\Users\hoge\path) では、波線が無効になっています。 ソース ファイルを開けません "bits/stdc++.h"

includeエラーを無視すると普通にコンパイルできます。
includeエラーを消す方法を教えてください。

試したこと

stdc++.hはC:\msys64\mingw64\include\c++\8.2.1\x86_64-w64-mingw32\bitsにありました。そのためこれをincludePathに設定した所、correct.hが開けないというエラーに変わりました。
corecrt.hはC:\msys64\mingw64\x86_64-w64-mingw32\includeにあったので
includePathを

"C_Cpp.default.includePath": [ "C:\msys64\mingw64\include\**", "C:\msys64\mingw64\x86_64-w64-mingw32\include" ]

と指定すると
#include<stdc++.h>のエラーは消えるものの、コードの至る所で下のようなエラーがでるようになりました。

"basic_string<char, char_traits<char>, allocator<char>>" にメンバー "substr" がありません 識別子 "cout" が定義されていません 識別子 "endl" が定義されていません

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

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

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

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

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

guest

回答1

0

ベストアンサー

まずはそのファイルがどこにあるのか探すことです。
それがわからないとおはなしになりません

投稿2019/12/14 14:48

y_waiwai

総合スコア87774

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

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

user14

2019/12/14 15:46

mingw64以下をくまなく探したのですが見つかりませんでした。今まで動いていたのでどこかにあると思うのですが
user14

2019/12/15 06:03

よく探したら`C:\msys64\mingw64\include\c++\8.2.1\x86_64-w64-mingw32\bits`にstdc++.hがありました。ですがincludePathにこれを設定してもだめでした。
y_waiwai

2019/12/15 06:22

"C:/msys64/mingw64/include/c++/8.2.1/x86_64-w64-mingw32/**" を設定してみる "C:/msys64/mingw64/include/**" でいいのかもしんないw
user14

2019/12/15 07:03

ありがとうございます。両方試しましたがどちらも「ソース ファイルを開けません "corecrt.h" (dependency of "bits/stdc++.h")」というエラーがでます。 corecrt.hはC:\msys64\mingw64\x86_64-w64-mingw32\includeにありましたが includePathを ``` "C_Cpp.default.includePath": [ "C:\msys64\mingw64\include\**", "C:\msys64\mingw64\x86_64-w64-mingw32\include" ] ``` と指定すると #include<stdc++.h>のエラーは消えるものの、コードの至る所で下のようなエラーがでます ``` "basic_string<char, char_traits<char>, allocator<char>>" にメンバー "substr" がありません 識別子 "cout" が定義されていません 識別子 "endl" が定義されていません ```
y_waiwai

2019/12/15 07:08 編集

それ、上下入れ替えてみたら いっしょかなあ。。
user14

2019/12/15 07:09

はい。。同じエラーでした。
user14

2019/12/15 09:45

default.includePathに設定するのをやめてc_cpp_properties.jsonのincludePathに"${workspaceFolder}"を指定するとなぜかエラーはでなくなりました。コンパイルもでき、問題ないです。しかしなぜこれで動くのかはわからないです。
y_waiwai

2019/12/15 09:50

C言語に関わる設定なんで、c_cpp_properties.jsonにいれるのであってます って、そっちにいれてるんじゃなかったのかw
user14

2019/12/15 10:31

settiong.jsonのC_Cpp_default.includepathもC言語関係ではなのでしょうか? また、c_cpp_properties.jsonだと具体的なパスを入れる必要がなくて${workspaceRoot}という指定でエラーが消えました。workspaceにはstdc++.hファイルなんて無いのでなぜこれで解決したのか不思議です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問