web-dev-qa-db-fra.com

Pourquoi GCC ne semble-t-il pas avoir la bibliothèque standard du système de fichiers?

je suis confronté à un problème avec la bibliothèque de système de fichiers, elle devrait être incluse dans le compilateur c ++ 17, après 2 jours, j'ai essayé d'installer gcc-7.0.2 dans Raspberry Pi mais cela n'a pas fonctionné, il n'a pas pu reconnaître la commande gcc-7 ou g ++ - 7 ou même -std=c++17 j'ai donc dû installer g ++ - 6 et gcc-6 en utilisant apt-get install de toute façon, après avoir installé la version 6, le compilateur inclut c ++ 17. j'utilise des blocs de code comme IDE, j'ai dû ajouter un nouveau compilateur et ajouter l'option -std = c ++ 17 pour l'activer, mais dans le code principal lorsque j'inclus la bibliothèque du système de fichiers, il ne dit aucun fichier ou répertoire.

ma question est, comment puis-je ajouter le compilateur c ++ 17 et sa bibliothèque (comme le système de fichiers) correctement ??

15
shadow

GCC v7 n'implémente toujours pas <filesystem> mais il a le Filesystem Technical Specification qui est dans <experimental/filesystem>

#include <experimental/filesystem>

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

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

Ceci est également disponible en GCC v6.

Pour créer un lien avec la bibliothèque, vous devez ajouter -lstdc++fs à la ligne de commande.

Remarque: Il peut y avoir quelques différences mineures entre l'actuelle Spécifications techniques et la version finale de < système de fichiers> qui est décidé par le Comité des normes.

Remarque 2: GCC v8 implémente maintenant <filesystem> avec le -std=c++17 drapeau.

35
Galik