前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >vs code + clangd + cmake + ninja 踩坑日记

vs code + clangd + cmake + ninja 踩坑日记

原创
作者头像
TomoriNao
发布2023-09-14 22:11:05
1.1K0
发布2023-09-14 22:11:05
举报
文章被收录于专栏:每月技术成长每月技术成长

clangd

clangd 是一个能够提供代码补全、智能提示、跳转等功能的c++语言服务器,相比vs code 带的c/c++插件功能更加强大

vs code 上配置clangd需要先下载clangd插件, 而后生成compile_commands.json文件即可避免clangd插件报错:“找不到头文件”

compile_commands.json

compile_commands.jsonclangd等工具用来提高代码跳转、补全功能的文件,在不存在compile_commands.json时,clangd会在分析自定义头文件时报错。对于c++项目,可以采用cmake 或make的方式来构建项目,而cmake和makefile均有对应的生成compile_commands.json文件的方法。

cmake

cmake 是可以一个跨平台的编译工具,可以生成makefile或者build.ninja文件,用于编译c++项目。

可以通过如下命令来生成“compile_commands.json”

代码语言:text
复制
cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=True ..

cmake cache

cmake在编译时会生成缓存文件,避免修改部分文件后需要重新编译整个项目。但也是由于缓存的存在,导致在修改CMakeLists.txt后,重新cmake 并不会重新编译项目。因此,可以在修改CMakeLists.txt文件后,删除CMakeCache.txt文件,强制cmake重新编译项目。

ninja

ninja与make的作用相同,但相对于历史悠久的make来说,ninja能够更加快速地完成整个项目的编译(大概只需要make 1/4 的时间)。而cmake可以通过简单的配置来生成ninja构建所需要的文件。

代码语言:text
复制
//在build目录下
cmake .. -G "Ninja"

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • clangd
  • compile_commands.json
  • cmake
    • cmake cache
    • ninja
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档