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; }
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
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
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!