test.cpp:(.text._ZNSt12experimental10filesystem2v17__cxx114pathC2INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES3_EERKT_[_ZNSt12experimental10filesystem2v17__cxx114pathC5INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES3_EERKT_]+0x70):对‘std::experimental::filesystem::v1::__cxx11::path::_M_split_cmpts()’未定义的引用 collect2: error: ld returned 1 exit status这个是什么问题
时间: 2023-07-16 07:12:48 浏览: 97
这个问题看起来像是链接错误,可能是因为在编译时没有正确链接文件系统库。你可以尝试添加 `-lstdc++fs` 选项来链接文件系统库,例如使用以下命令进行编译和链接:
```
g++ test.cpp -lstdc++fs
```
如果你使用的是 C++17 标准,也可以在编译时添加 `-std=c++17` 选项,这样文件系统库会自动链接。
相关问题
yolo.cpp:(.text._ZNSt12experimental10filesystem2v17__cxx114pathC2INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES3_EERKT_[_ZNSt12experimental10filesystem2v17__cxx114pathC5INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES3_EERKT_]+0x5c): undefined reference to `std::experimental::filesystem::v1::__cxx11::path::_M_split_cmpts()'这个是怎么回事
这个错误通常是因为链接器无法找到 `std::experimental::filesystem` 库。如果你使用的是较旧的编译器,可能需要手动链接该库。对于 GCC 和 Clang,可以在编译时使用 `-lstdc++fs` 选项链接该库。
如果你是使用 CMake 构建项目,可以在 CMakeLists.txt 文件中添加以下行来链接该库:
```
target_link_libraries(your_target_name stdc++fs)
```
如果你使用的是 Visual Studio,可以在项目属性中将“C++17 standard”设置为“ISO C++17 Standard (/std:c++17)”或更高版本。
undefined symbol: _ZNSt12experimental10filesystem2v17__cxx1118directory_iteratorppEv这个报错啥意思
这个错误通常是因为您的代码中使用了C++17标准的文件系统库,但您的编译器不支持该标准或者编译器的版本过低。解决这个问题的方法有两种:
1.升级编译器到支持C++17标准的版本,比如gcc 8.0以上、clang 5.0以上、Visual Studio 2017以上等。
2.改用C++11标准的文件系统库。您可以使用boost::filesystem或者Qt的QDir等第三方库来代替C++17标准的文件系统库。
阅读全文