Maison > développement back-end > C++ > Pourquoi est-ce que je reçois une erreur de l'éditeur de liens lors de l'utilisation de « std::experimental::filesystem » dans GCC 6.0 ?

Pourquoi est-ce que je reçois une erreur de l'éditeur de liens lors de l'utilisation de « std::experimental::filesystem » dans GCC 6.0 ?

DDD
Libérer: 2024-11-17 13:13:02
original
382 Les gens l'ont consulté

Why am I getting a linker error when using `std::experimental::filesystem` in GCC 6.0?

erreur d'éditeur de liens pour experimental::filesystem

Lors de la tentative d'utilisation des nouvelles fonctionnalités c 1z dans la version de développement actuelle de gcc 6.0, un L'exemple de programme rencontre une erreur d'éditeur de liens :

#include <iostream>
#include <experimental/filesystem>
namespace fs = std::experimental::filesystem;

int main()
{
    fs::path p1 = "/home/pete/checkit";

    std::cout << "p1 = " << p1 << std::endl;
}
Copier après la connexion

Il en résulte l'erreur suivante :

/opt/linux-gnu_6-20151011/bin/g++ --std=c++1z main.cpp -O2 -g -o go
/tmp/ccaGzqFO.o: In function \`std::experimental::filesystem::v1::__cxx11::path::path(char const (&) [36])':
/opt/linux-gnu_6-20151011/include/c++/6.0.0/experimental/bits/fs_path.h:167: undefined reference to `std::experimental::filesystem::v1::__cxx11::path::_M_split_cmpts()'
collect2: error: ld returned 1 exit status
Copier après la connexion

Résolution

Le système de fichiers TS est distinct de Prise en charge de C 1z et ne fait pas partie de la version de travail de C 1z. Le problème de liaison peut être résolu en créant un lien avec -lstdc fs pour accéder à la bibliothèque.

Mises à jour

  • Dans GCC 8.x, l'implémentation du système de fichiers C 17 est également disponible dans l'espace de noms std::filesystem avec -std=gnu 17 ou -std=c 17, mais nécessite une liaison vers -lstdc fs.
  • Dans GCC 9, les composants du système de fichiers C 17 peuvent être utilisés sans - lstdc fs.
  • Dans GCC 13.3, les symboles std::experimental::filesystem sont également disponibles dans -lstdc exp.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal