Behebung von GCC undefined reference to std::experimental::filesystem::...
English
Deutsch
Problem:
Du möchtest eine ausführbare Datei mit GCC/G++ kompilieren, die Funktionalität aus std::experimental::filesystem verwendet, aber du erhältst während der Kompilierung / des Linkens eine Fehlermeldung wie diese:
linker-error-stdc++fs.txt
test.cpp:(.text+0x33): undefined reference to `std::experimental::filesystem::v1::file_size(std::experimental::filesystem::v1::__cxx11::path const&)'
/tmp/ccSXeCVb.o: In function `std::experimental::filesystem::v1::__cxx11::path::path<char [9], std::experimental::filesystem::v1::__cxx11::path>(char const (&) [9])':
test.cpp:(.text._ZNSt12experimental10filesystem2v17__cxx114pathC2IA9_cS3_EERKT_[_ZNSt12experimental10filesystem2v17__cxx114pathC5IA9_cS3_EERKT_]+0x73): undefined reference to `std::experimental::filesystem::v1::__cxx11::path::_M_split_cmpts()'
collect2: error: ld returned 1 exit statusLösung
Du musst die stdc++fs-Bibliothek linken, d.h. -lstdc++fs an deinen g++-Befehl anhängen.
Ein funktionierender Befehl sieht z.B. so aus:
build-with-stdc++fs.sh
g++ -o myprogram main.cpp -lstdc++fsCheck out similar posts by category:
C/C++, GCC Errors
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow