Cer*_*que 5 c++ emacs archlinux flycheck c++17
Archlinux 用户使用 Emacs 作为 C++ IDE,设置如下:company/flycheck/lsp-ui/ccls
我正在尝试将filesystemc++17 中的库用于个人用途,但我无法摆脱 Emacs 中的此错误
ccls : no member named 'filesystem' in namespace 'std'
我的问题的快速示例
#include <iostream>
#include <filesystem>
int main(int argc, char** argv) {
std::filesystem::path filePath("./sample.cpp");
std::cout << filePath.filename() < std::endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
使用此命令编译和运行时完全没问题:
clang++ -std=c++17 sample.cpp
输出 : "sample.cpp"
但是 Emacs 中仍然存在“错误”,这有点烦人。我尝试添加.ccls具有以下内容的文件,但这并不能解决问题。
clang++
%cpp -std=c++17 ; Also tried with gnu++17
Run Code Online (Sandbox Code Playgroud)
这是问题的屏幕截图。错误cout和filePath是第一个的后果我猜是因为总的来说一切都很好
有人知道如何解决问题吗?
我使用 nvim + Ale + LanguageClient-neovim 遇到了与您遇到的类似问题。我成功地使用 clang++ 和 -std=c++20 标志成功编译了我的代码。但是,我无法摆脱 nvim 中指示找不到导入成员的错误消息。我什至构建了我的 .ccls 文件,但它没有解决问题。
后来,我意识到虽然我配置了 LanguageClient,但我忽略了配置我的 linter (Ale)。因此,可能值得检查您的 linter 是否也设置为使用 c++20。希望这个建议对您有所帮助!