如何在Kate文本编辑器中启用C++17语言支持?
Kate中启用C++17解决std::filesystem报错的方法
问题情况
在Kate里编辑main.cpp时,已开启C++语法高亮,但语言版本偏旧。写入以下代码:
#include <filesystem> std::filesystem::path path;
出现clang报错:[clang] (no member) 'std'命名空间中无'filesystem'成员,和Visual Studio未设置C17时的报错一致。查阅文档、搜索资料后仍未找到启用C17的入口,目前在Settings > Configure Kate > LSP Client > Default Server Settings中看到的clangd配置如下:
"servers": { ... "c": { "command": ["clangd", "-log=error", "--background-index", "--limit-results=500", "--completion-style=bundled"], "commandDebug": ["clangd", "-log=verbose", "--background-index"], "url": "https://clang.llvm.org/extra/clangd/", "highlightingModeRegex": "^(C|ANSI C89|Objective-C)$" }, "cpp": { "use": "c", "highlightingModeRegex": "^(C\\+\\+|ISO C\\+\\+|Objective-C\\+\\+)$" },
解决方法
方法一:修改全局LSP配置(所有C++文件生效)
- 打开
Settings > Configure Kate > LSP Client > Default Server Settings - 找到
"c"节点下的"command"数组,添加"-std=c++17"参数,修改后如下:"command": ["clangd", "-log=error", "--background-index", "--limit-results=500", "--completion-style=bundled", "-std=c++17"], - 由于cpp配置继承自c的设置,保存配置后重启Kate或重新加载LSP服务即可。
方法二:项目级配置(推荐,不影响全局)
在项目根目录创建compile_commands.json文件,clangd会自动读取该文件中的编译参数。示例内容:
[ { "directory": "/你的项目实际路径", "command": "g++ -std=c++17 -c main.cpp", "file": "main.cpp" } ]
将/你的项目实际路径替换为项目真实路径,之后clangd会以C++17标准处理该项目内的文件。
方法三:单个文件配置
- 打开目标
main.cpp,点击顶部菜单Tools > LSP Client > Configure Language Server for Current File - 在弹出的配置界面中,给clangd的命令参数添加
"-std=c++17",保存后仅当前文件生效。
内容的提问来源于stack exchange,提问作者golightlydev
相关产品推荐
相关产品推荐

