teratail
質問するログイン新規登録

Q&A

解決済

2回答

1738閲覧

MSYS2のclang++のfilesystemがincludeしただけでエラーになる

saki_chan

総合スコア40

MSYS

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

C++

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

Clang

Clangは、プログラミング言語 C、C++、Objective-C、Objective-C++ 向けのコンパイラである。

1グッド

1クリップ

投稿2019/08/13 07:31

編集NaN/aN/aN aN:aN

1

1

windows10でmsys2を入れclangをインストールしました。
そして以下のコードをコンパイルするとエラーを吐きます。

C++

1#include <filesystem> 2 3int main() 4{ 5 return 0; 6}

結果

clang++ -std=c++2a -o bin.exe src\main.cpp In file included from src\main.cpp:1: In file included from C:\msys64\mingw64\include\c++\9.2.0\filesystem:37: C:\msys64\mingw64\include\c++\9.2.0\bits/fs_path.h:636:31: error: invalid use of incomplete type 'std::filesystem::__cxx11::filesystem_error' _GLIBCXX_THROW_OR_ABORT(filesystem_error( ^~~~~~~~~~~~~~~~~ C:\msys64\mingw64\include\c++\9.2.0\x86_64-w64-mingw32\bits/c++config.h:177:49: note: expanded from macro '_GLIBCXX_THROW_OR_ABORT' # define _GLIBCXX_THROW_OR_ABORT(_EXC) (throw (_EXC)) ^~~~ C:\msys64\mingw64\include\c++\9.2.0\bits/fs_fwd.h:61:9: note: forward declaration of 'std::filesystem::__cxx11::filesystem_error' class filesystem_error;

-std=c++2aをc++17にしても同じ結果ですが、c++14、または削除するとコンパイルが通ります。
どうすれば-std=c++2aのままでコンパイルが通るようになるでしょうか。
msys2のg++で同じようにコンパイルすると通ってくれます。

追記:バージョン

clang++ --version clang version 8.0.1 (tags/RELEASE_801/final) Target: x86_64-w64-windows-gnu Thread model: posix InstalledDir: C:\msys64\mingw64\bin
yumetodo👍を押しています

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

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

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

guest

回答の取得に失敗しました

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

ただいまの回答率
%

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

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

質問する

関連した質問