cursor无法使用c/c++扩展导致代码无法跳转,研究了一下解决方法

cursor无法使用c/c++扩展导致代码无法跳转,研究了一下解决方法

一、前言

都知道vscode为了保护自己的copilot,对c/c++扩展做了私有化的处理,非vscode不能使用。但是当前阶段,copilot是不如cursor的,要用cursor又不能实现C代码跳转,非常痛苦。

二、用c/c++扩展(硬用)

网上有,退回到1.23.6版本,教程很多,这里不说。

三、用cursor自带c/c++扩展

可能很多人没意识到cursor已经自带该扩展了,只是安装好过后,不能直接跳转,这里说一下自带的c/c++扩展是怎么个事。

3.1 需要的插件

这是cursor自己的c/c++扩展,你可能说我装了,没用。
说一下,要想使用,需要clangd,codeLLDB,Cmake Tools,安装c/c++扩展后另外三个会自动安装。到现在还不能用。

需要的插件

3.2 需要额外安装的软件

3.2.1 clangd.exe

我也不知道怎么找到的这个地址,下载下来

clangd


解压后找到想要存放的目标路径(bin文件夹里只有一个clangd.exe)

路径


添加到环境变量

在这里插入图片描述

当你在任意路径使用powershell运行clangd命令会出现以下提示,就说明操作没问题

clangd命令

3.2.2.CmakeTools

这个简单,点击进入官网,安装就行。

CmakeTools

3.3 写一个compile_commands.json文件

我也不会写,我让cursor帮我写的。
然后clangd就会通过这个compile_commands.json文件生成xxx.idx文件到.cache目录。
现在可以真正意义上的实现代码跳转,再也不依赖vscode的c/c++扩展了。

在这里插入图片描述

2025.9.28 更新compile_commands.json自动生成!!!

这里只针对嵌入式开发,只用于简单看看代码。其他编译工具要生成该文件应该很方便了。

3.4 git找脚本直接生成compile_commands.json

keil2clangd,这是我用的,或者直接去github搜索keil2clangd,iar同样适用。下图是该脚本直接使用的说明,我认为是最方便的。

操作

3.5 设置clangd识别compile_commands.json的路径

我这是让AI生成的,应该不用这么多内容也行,主要是"–compile-commands-dir="参数。
重启clangd插件。之后会在compile_commands.json所在目录生成.cache目录,现在可以实现自由跳转了。

在这里插入图片描述

四、题外话

解决思路:实际上是参考trae的操作来解决的,目前大部分AI应该都能通用。
关于主题:最开始我函数或者变量,看到的都是白色,应该是因为c/c++ themes插件也失效了,只能用自带的Dark+主题,函数名才有了颜色区分

Read more

C++ 入门全指南:从发展史到第一个程序,命名空间 + 输入输出手把手讲

C++ 入门全指南:从发展史到第一个程序,命名空间 + 输入输出手把手讲

目录 一、C++的发展历史 1.发展历史 2.C++的版本更新 3.C++的参考文档 二、C++的学习建议 1.C++的应用领域: 2.学习书籍推荐: 三、C++的第一个程序 四、命名空间 1.namespace的价值: 2.namespace的定义: 1)使用namespace来命名空间,以及使用命名空间(详解见注释): 2)命名空间的嵌套使用 3)多文件定义的命名空间问题 3.namespace命名空间的使用: 1)指定命名空间访问 2)using将命名空间中某个成员展开 3)展开命名空间中全部成员 五、C++输入&输出

By Ne0inhk
手把手实现 STL Set/Map:从零编写一棵红黑树到完整容器封装

手把手实现 STL Set/Map:从零编写一棵红黑树到完整容器封装

🔥草莓熊Lotso:个人主页 ❄️个人专栏: 《C++知识分享》《Linux 入门到实践:零基础也能懂》 ✨生活是默默的坚持,毅力是永久的享受! 🎬 博主简介: 文章目录 * 前言: * 一. 架构与实现:总览设计框架,深入源码细节 * 二. 核心设计思路:红黑树的泛型复用 * 2.1 红黑树的模板参数设计 * 2.2 仿函数 KeyOfT:统一 key 提取逻辑 * 2.3 核心约束:key 不可修改 * 三. 基础组件实现:红黑树与仿函数 * 3.1 红黑树节点结构 * 3.2 仿函数实现(map/set 层) * 3.2.1

By Ne0inhk
C++之基于正倒排索引的Boost搜索引擎项目usuallytool部分代码及详解

C++之基于正倒排索引的Boost搜索引擎项目usuallytool部分代码及详解

这部分是通用工具部分的代码,简单来说就是这份代码里面的函数会在项目的其他多个部分里面被使用,所以我们专门创建一个部分用来存储这些代码。 1.FileUtil 这个类就是专门用来读取文件用的,这个代码从指定的文件路径读取文件内容,将读取到的内容(按行读取)追加到传入的字符串指针(out)所指向的字符串中;同时,该方法会返回一个布尔值,用于标识读取操作是否成功 —— 若文件成功打开并完成读取,返回 true;若文件打开失败(如路径错误等),则输出错误信息并返回 false。 文件以二进制输入模式打开,读取过程中不会修改原文件内容。 class FileUtil{ public: static bool ReadFile(const std::string &file_path,std::string *out) { //下面这行代码就是在打开文件,并通过ifstream定义一个对象in,用于关联特定的文件 std::ifstream in(file_path,std::ios::in

By Ne0inhk
Microsoft Visual C++ 运行库安装教程(最新版完整指南 | DLL修复方案)

Microsoft Visual C++ 运行库安装教程(最新版完整指南 | DLL修复方案)

前言 用过大型软件或者玩过 3A 大作的小伙伴,多少都遇到过这种弹窗: * “缺少 msvcp140.dll” * “无法继续执行代码,因为系统找不到 vcruntime140_1.dll” * 甚至是“程序无法启动,因为计算机中丢失了 MSVCR100.dll” 别慌~其实这类报错几乎 100% 是因为 Microsoft Visual C++ 运行库(VC++ Redistributable)缺失或损坏。 本文将为你带来 2025年最新版 VC++运行库下载与安装教程,覆盖: *  一键修复方法(新手必备,解决 DLL 缺失) *  专业用户手动安装方案(x86 / x64 全兼容) *  常见报错与完整修复套路 *  DLL 问题常见 FAQ 帮助你在最短时间内修好 DLL 报错,

By Ne0inhk