Heim > Backend-Entwicklung > C++ > Hauptteil

Warum erhalte ich einen Linker-Fehler, wenn ich „std::experimental::filesystem' in GCC 6.0 verwende?

DDD
Freigeben: 2024-11-17 13:13:02
Original
299 Leute haben es durchsucht

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

Linkerfehler für „experimental::filesystem“

Beim Versuch, die neuartigen c 1z-Funktionen in der aktuellen Entwicklungsversion von gcc 6.0 zu nutzen, wurde ein Beispielprogramm stößt auf einen Linker-Fehler:

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

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

    std::cout << "p1 = " << p1 << std::endl;
}
Nach dem Login kopieren

Ergibt den folgenden Fehler:

/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
Nach dem Login kopieren

Auflösung

Das Dateisystem TS unterscheidet sich von C 1z-Unterstützung und ist nicht Teil des C 1z-Arbeitsentwurfs. Das Verknüpfungsproblem kann durch eine Verknüpfung mit -lstdc fs gelöst werden, um auf die Bibliothek zuzugreifen.

Updates

  • In GCC 8.x die C 17-Dateisystemimplementierung ist auch im Namespace std::filesystem mit -std=gnu 17 oder -std=c 17 verfügbar, erfordert jedoch eine Verknüpfung mit -lstdc fs.
  • In GCC 9 können die C 17-Dateisystemkomponenten ohne verwendet werden - lstdc fs.
  • In GCC 13.3 sind die std::experimental::filesystem-Symbole auch in -lstdc exp.
verfügbar

Das obige ist der detaillierte Inhalt vonWarum erhalte ich einen Linker-Fehler, wenn ich „std::experimental::filesystem' in GCC 6.0 verwende?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage