web-dev-qa-db-ja.com

GCCにファイルシステム標準ライブラリがないのはなぜですか?

私はファイルシステムライブラリの問題に直面しています、それはc ++ 17コンパイラに含まれているはずです。2日後にRccberry Piにgcc-7.0.2をインストールしようとしましたが、機能しませんでした。コマンドを認識できませんでした。 gcc-7またはg ++-7または-std=c++17なので、とにかくapt-get installを使用してg ++-6とgcc-6をインストールする必要がありました。6バージョンをインストールした後、コンパイラにはc ++ 17が含まれています。 IDEとしてコードブロックを使用しています。新しいコンパイラを追加し、それを有効にするためにオプション-std = c ++ 17を追加する必要がありましたが、メインコードにファイルシステムライブラリを含めると、そのようなファイルやディレクトリは表示されません。

私の質問は、c ++ 17コンパイラとそのライブラリ(ファイルシステムなど)を正しく追加するにはどうすればよいですか?

15
shadow

GCC v7<filesystem> を実装していませんが、 <experimental/filesystem)にあるFilesystem Technical Specificationを実装しています>

#include <experimental/filesystem>

// for brevity
namespace fs = std::experimental::filesystem;

int main()
{
    fs::path p = "/path/to/my/file"; // etc...
}

これはGCC v6でも利用できます。

ライブラリとリンクするには、コマンドラインに-lstdc++fsを追加する必要があります。

注:現在の技術仕様と-の最終ドラフトの間には、若干の違いがあるかもしれません <filesystem> 標準委員会によって決定されます。

注2:GCC v8-std=c++17フラグを使用して <filesystem> を実装するようになりました。

35
Galik