You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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++文件生效)

  1. 打开Settings > Configure Kate > LSP Client > Default Server Settings
  2. 找到"c"节点下的"command"数组,添加"-std=c++17"参数,修改后如下:
    "command": ["clangd", "-log=error", "--background-index", "--limit-results=500", "--completion-style=bundled", "-std=c++17"],
    
  3. 由于cpp配置继承自c的设置,保存配置后重启Kate或重新加载LSP服务即可。

方法二:项目级配置(推荐,不影响全局)

在项目根目录创建compile_commands.json文件,clangd会自动读取该文件中的编译参数。示例内容:

[
  {
    "directory": "/你的项目实际路径",
    "command": "g++ -std=c++17 -c main.cpp",
    "file": "main.cpp"
  }
]

将/你的项目实际路径替换为项目真实路径,之后clangd会以C++17标准处理该项目内的文件。

方法三:单个文件配置

  1. 打开目标main.cpp,点击顶部菜单Tools > LSP Client > Configure Language Server for Current File
  2. 在弹出的配置界面中,给clangd的命令参数添加"-std=c++17",保存后仅当前文件生效。

内容的提问来源于stack exchange,提问作者golightlydev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 04:27:25