Я пытался использовать <filesystem>
в своем проекте CLion в среде Fedora 29.
При компиляции напрямую из терминала все работает гладко, но когда я пытаюсь скомпилировать из CLion, возникает проблема с компоновщиком файловой системы. Я не уверен, что еще я могу сделать. Есть предложения?
- g ++ (GCC) 8.3.1 20190223 (Red Hat 8.3.1-2)
- Clang версия 7.0.1
(Fedora 7.0.1-6.fc29)
Вот что я уже пробовал:
Я добавил флаг -lstdc ++ fs:
set(CMAKE_CXX_FLAGS -lstdc++fs)
но я не работал. Я проверил, используется ли этот флаг:
set( CMAKE_VERBOSE_MAKEFILE on )
и кажется, что это:
[ 50%] Building CXX object CMakeFiles/untitled.dir/main.cpp.o
/usr/bin/g++ -lstdc++fs -g -std=gnu++17 -o
CMakeFiles/untitled.dir/main.cpp.o -c
/home/patryk/CLionProjects/untitled/main.cpp
[100%] Linking CXX executable untitled
/home/patryk/clion-2018.3.4/bin/cmake/linux/bin/cmake -E
cmake_link_script CMakeFiles/untitled.dir/link.txt --verbose=1
/usr/bin/g++ -lstdc++fs -g CMakeFiles/untitled.dir/main.cpp.o -o
untitled
/usr/bin/ld: CMakeFiles/untitled.dir/main.cpp.o: in function
`std::filesystem::__cxx11::path::path<char [2],
std::filesystem::__cxx11::path>(char const (&) [2],
std::filesystem::__cxx11::path::format)':
/usr/include/c++/8/bits/fs_path.h:184: undefined reference to
`std::filesystem::__cxx11::path::_M_split_cmpts()'
collect2: error: ld returned 1 exit status
Я также пытался использовать компилятор clang с точно такими же результатами.
main.cpp
#include <iostream>
#include <filesystem>
int main() {
std::filesystem::path p("D");
return 0;
}