VS CODE进行NRF CONNECT项目开发出现变量无法链接跳转问题及解决方法

VS CODE进行NRF CONNECT项目开发出现变量无法链接跳转问题及解决方法

遇到的问题:

用VS CODE 进行NRF CONNECT 项目开发时,右键变量,按F12, 无法跳转,如下图:

右键 bt_data 希望找到该结构体类型的定义,但出现提示:No definition found for "bt_data"

问题分析:

VS CODE 编译应用APPLICATION时,生成build文件夹,在该文件夹中包含json文件,如下图所示:

编译的应用位于文件夹l3_e1_sol, 编译后生成的文件位于build目录下,生成的箭头所指的数据库文件compile_commands.json用于提供完整的头文件、宏、结构体定义。该文件位于l3_e1_sol/build/l3_e1_sol目录下,文件内容如下图所示:

编译成功后,插件(Extensions)C/C++ IntelliSense可以根据生成的编译数据库compile_commands.json库文件的内容进行跳转。

因此VS CODE无法连接并跳转,可能是两个原因造成的:

  1. IntelliSense被禁止
  2. 没有生成compile_commands.json文件

解决方法:

  1. 将应用中的源文件放到workspace中。

    a. 将应用所在的文件夹以及SDK文件夹放到workspace中

    b. 保存workspace, 文件名为BT-DUND, 文件内容如下:

  2. 使能IntelliSense

    a. 打开设置 Ctrl+, 即按住Ctrl按键和逗号","按键。打开设置页面,搜索栏中输入C_CPP.INTELLI, 如下所示

b. 先切换为tag_parser, 等待5秒,再切回Default

c. Ctrl + Shift +P, 执行C/C++: RESET INTELLISENSE DATABASE.

  1. 经过以上两步设置后,鼠标在变量上,便会出现该变量的提示,按F12, 便会跳转的该变量的定义。如下图所示:

上图:鼠标在变量bt_data上,会出现该变量的提示

上图:按F12, 便会跳转的该变量的定义

相关推荐
無a伟2 小时前
redis采用的单线程模型,为什么这么快?
数据库·redis·缓存
xlq223222 小时前
高并发服务器day5
java·服务器·数据库
xxwxx__3 小时前
51单片机智能家居系统:从零实现温湿度监测、蓝牙遥控与PWM风扇调速
嵌入式硬件·51单片机·智能家居
William_cl3 小时前
WinForms EF Core 上下文频繁释放引发的异常排查与规范方案(MES 项目实录)
服务器·数据库·oracle
集芯微电科技有限公司3 小时前
替代LM4890音频功率放大器低电磁干扰辐射
人工智能·单片机·嵌入式硬件·生成对抗网络·计算机外设
许彰午3 小时前
01-Oracle 19c静默安装全流程
数据库·oracle
许彰午3 小时前
02-Oracle连接池配置实战
数据库·oracle
Flandern11113 小时前
HTTPS(TLS 1.3)完整流程
数据库·网络协议·计算机网络·https
Bonnie_12153 小时前
Navicat Premium连接sql server数据库
数据库