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

简介: vscode 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

相关文章
|
13天前
|
数据安全/隐私保护 C++ 计算机视觉
Qt(C++)开发一款图片防盗用水印制作小工具
文本水印是一种常用的防盗用手段,可以将文本信息嵌入到图片、视频等文件中,用于识别和证明文件的版权归属。在数字化和网络化的时代,大量的原创作品容易被不法分子盗用或侵犯版权,因此加入文本水印成为了保护原创作品和维护知识产权的必要手段。 通常情况下,文本水印可以包含版权声明、制作者姓名、日期、网址等信息,以帮助识别文件的来源和版权归属。同时,为了增强防盗用效果,文本水印通常会采用字体、颜色、角度等多种组合方式,使得水印难以被删除或篡改,有效地降低了盗用意愿和风险。 开发人员可以使用图像处理技术和编程语言实现文本水印的功能,例如使用Qt的QPainter类进行文本绘制操作,将文本信息嵌入到图片中,
34 1
Qt(C++)开发一款图片防盗用水印制作小工具
|
1月前
|
编译器 C语言 C++
【VS Code】安装配置调试C/C++(一)
【VS Code】安装配置调试C/C++(一)
44 0
|
1月前
|
Java API C++
Java JNI开发时常用数据类型与C++中数据类型转换
Java JNI开发时常用数据类型与C++中数据类型转换
65 0
|
5天前
|
编译器 C++ 开发者
C++一分钟之-嵌入式编程与裸机开发
【7月更文挑战第12天】在嵌入式裸机开发中,C++发挥着关键作用,尤其适合高性能和硬件控制。内存管理是核心挑战,推荐静态分配或手动堆栈管理以防止泄漏和碎片。中断处理应快速,仅设置标志,复杂逻辑移至主循环。编译器优化平衡代码大小和效率,但过度优化会牺牲可读性。通过谨慎实践,开发者能驾驭C++的优势。
12 1
|
20天前
|
C# 图形学 C++
使用vscode开发C#+unity没有代码提示问题
使用vscode开发C#+unity没有代码提示问题
17 0
使用vscode开发C#+unity没有代码提示问题
|
13天前
|
JSON 小程序 数据格式
uni-app 使用vscode开发uni-app
uni-app 使用vscode开发uni-app
46 0
|
15天前
|
JSON 数据格式
3. 使用 VsCode 开发 uni-app 项目需要使用到的插件
3. 使用 VsCode 开发 uni-app 项目需要使用到的插件
17 0
|
1月前
|
项目管理 C++
【VS Code】安装配置调试C/C++(二)
【VS Code】安装配置调试C/C++(二)
45 1
|
21天前
|
程序员 C# C++
lpszBlogName C#开发多年中途被迫改行C++但工作中又经常偷偷使用C#的C++程序员
通过AUMID解析出packageFamily,再根据PackageManager解析出安装目录 PackageManager是WinRT的类型,如何在c++中使用WinRT,请参考C++/WinRT 以下代码需要管理员权限才能运行。
|
2月前
|
存储 Shell 网络安全
【vscode】在本地加载远端环境并开发
【vscode】在本地加载远端环境并开发
117 0