47632


windows10(32bit), gcc-6.3.0-1においてです。  
MinGW
Installerを用いてgccをインストールしましたが、`#include<filesystem>`や`#include<experimental/filesystem>`を含むcppファイルをコンパイルすると

[code]

    hoge.c:3:22: fatal error: filesystem: No such file or directory
     #include <filesystem>
                          ^
    compilation terminated.
    
[/code]

のようにエラーが出てしまいます(experimental/filesystemのときも同様)。  
コンパイルオプションには`-std=c++17`を付けています。また、調べたときに`-lstdc++fs`を付けるとよいという記事を見たので、試しましたが、変わりませんでした。

[code]

    g++ -lstdc++fs
    
[/code]

を実行すると

[code]

    ld.exe: cannot find -lstdc++fs
    collect2.exe: error: ld returned 1 exit status
    
[/code]

のようなエラーを吐くので、そもそもlibstdc++fs.aが存在しないのだと思い、MinGW/内をlibstdc++fsとfilesystemの二つで検索をかけたところ、どちらの名前のファイルも存在しませんでした。MinGWではfilesystemヘッダを利用する方法はないのでしょうか。


CC BY-SA 4.0
2018-08-19T08:00:34.653
47622
2018-08-19T14:16:47.770
29768
question
c++ windows-10 gcc
MinGWのg++にfilesystemヘッダが存在しない


MSYS2環境Mingw-w64 GCC
8.2.0で`<filesystem>`を利用できることを確認ました。GCCアップデート前の7系ではヘッダファイルがなくてエラーになった事から、@alphaさんのコメントの通りGCCでは8.xからの対応のようです。なお、リンク時に`-lstdc++fs`オプションは必須です。

MinGW GCCは現在メンテナンスされておらず、GCCも古いバージョンで止まっています。最新のC++規格を使いたい場合は、[Mingw-w64
GCC](http://mingw-w64.org/)を使用してください。Windowsでのビルド環境は[MSYS2](http://www.msys2.org/)を用いるのが最も簡単でしょう。


CC BY-SA 4.0
2018-08-19T14:16:47.770
47632
2018-08-19T14:16:47.770
7347
47622
answer