vscode clangd c++开发常见问题和解决方案

在上一篇文章中,我们推荐了vscode + remote-ssh + clangd这种C++开发方式。在本文中,我们将总结使用这种方式的过程中遇到的常见问题及其解决方案。

找不到标准库头文件

原因: clangd启动时需要通过参数指定从那个目录搜索标准库头文件。

  "clangd.arguments": [
  "--log=verbose",
  "--header-insertion=never",
  "--query-driver=/usr/bin/g++*"
  ]

解决:修改vscode settings,加入配置

"clangd.path": "/root/.vscode-server/data/User/globalStorage/llvm-vs-code-extensions.vscode-clangd/install/12.0.1/clangd_12.0.1/bin/clangd",
  "clangd.arguments": [
  "--log=verbose",
  "--header-insertion=never",
  "--query-driver=/usr/bin/g++*"
  ]

工程非cmake构建或cmake执行失败

原因:在很多情况下, 我们只想浏览某个工程的代码,而不想对其进行编译。当时当工程并不是cmake构建或者执行cmake失败的时候,我们就无法生成compile_commands.json文件,clangd也就无法解析symbol并对其索引, 导致我们无法正常的浏览工程代码。

解决:解决方案其实很简单,在工程目录下创建一个CMakeLists.txt文件

cmake_minimum_required(VERSION 3.5)

# Set the project name
project (demo)

set (SRCS 源文件列表)
# Add an executable
add_executable(demo ${SRCS})

target_include_directories(demo PUBLIC
 include路径列表
)

其中源文件列表和include路径列表都可通过find命令批量填充到文件CMakeLists.txt中。感兴趣的同学还可写个自动化的脚本。

然后执行cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=YES .便可生成compile_commands.json,一切安排妥当,【clickhouse新特性之—clickhouse-keeper

推荐阅读

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值