ПРИМЕЧАНИЕ: это обязательно для #include <filesystem>
. После этого происходит сбой.
Я использую macOS 10.15, использую clang 11. Вывод clang --version
:
Apple clang version 11.0.0 (clang-1100.0.33.17)
Target: x86_64-apple-darwin19.4.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
Когда я пытаюсь скомпилировать что-то простое, например:
#include <filesystem>
using namespace std;
filesystem::path dev_dir;
int main() {
dev_dir = "/dev/";
return 0;
}
Компилятор действительно находит библиотеку файловой системы, но не распознает пространство имен:
$clang trigger_controller.cpp -o trigger_controller
trigger_controller.cpp:##:##: error: use of undeclared identifier 'filesystem'
filesystem::path dev_dir;
Это файл, который я считаю m пытается включить (который, как я подтвердил, существует):
// /usr/local/include/c++/9.2.0/filesystem
#ifndef _GLIBCXX_FILESYSTEM
#define _GLIBCXX_FILESYSTEM 1
#pragma GCC system_header
#if __cplusplus >= 201703L
#include <bits/fs_fwd.h>
#include <bits/fs_path.h>
#include <bits/fs_dir.h>
#include <bits/fs_ops.h>
#define __cpp_lib_filesystem 201703
#endif // C++17
#endif // _GLIBCXX_FILESYSTEM
Что я делаю не так? Нужны ли мне специальные параметры компилятора c? Неправильное пространство имен?