keil mdk 编译左下角显示错误 “no browse info for symbol in this context“不能正常使用“Go to Definition xxx”跳转

本文介绍了如何在包含中文路径的工程中修复‘GotoDefinition’无法正常使用的问题,通过调整工程配置为version5并移除微库,解决了'nobrowseinfoforsymbol'inthiscontext'提示。关键步骤包括更改路径和配置设置,以确保代码跳转功能正常工作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如图所示,创建了一个工程,但是在使用“Go to Definition xxx”时不能正常跳转,且左下角出现红色的"no browse info for symbol in this context",

结果千辛万苦的研究探索,我们发现了出现这个问题的原因,解决这个问题的方法有以下两个:

方法一:把工程移到不包含中文的路径下进行编译使用。这种方法简单除暴,但是很不方便,因为我们写的工程免不了要保存在中文路径下。

方法二:检查我们工程的配置是否如图所示选择的是version6:

如果是,则改为version5:

这样就可以正常使用“Go to Definition xxx”跳转了,虽然左下角还是会出现"no browse info for symbol in this context"但是已经不影响使用了,如下图所示:

如果再把【Use Micro LIB】微库勾选上就不会出现红色提示了。

然后关掉重新打开一遍就OK了。

另外,如果出现这个错误:

 

就是[Browsw information]没有勾选上,勾上就行了

<think>我们正在处理用户关于Keil MDK-5开发环境中出现“Nobrowse infofor symbolin thiscontext错误的问题。根据提供的引用资料,这个问题通常是由于缺少编译器版本5(V5编译器)引起的,因为较旧的工程使用的是V5编译器,而新安装的Keil5默认使用V6编译器,且没有预装V5编译器。解决步骤:1.下载并安装V5编译器支持包(根据引用[3]和[4]提供的链接)。2.将下载的V5编译器支持包放置到Keil安装目录的ARM文件夹下。3.在Keil中打开工程,点击“魔术棒”按钮(Options forTarget)。4.在“Target”选项卡中,将编译器版本从V6更改为V5(如果已经安装了V5编译器,则会出现选项)。5.重新构建整个项目(Rebuild all),然后应该可以正常跳转。注意:引用[3]提供了百度网盘链接(链接:https://pan.baidu.com/s/1E8U1jLm7Yxr5vXOU_BeRbQ提取码:exzc),引用[4]也提供了另一个百度网盘链接(链接: https://pan.baidu.com/s/1q3XS6ch6PLfJHW3a3P1RwQ?pwd=uezi提取码:uezi)。用户可以选择其中一个下载。另外,引用[3]还提到了安装步骤的图示,我们可以按照其描述的步骤进行操作。如果用户已经按照上述步骤操作但问题仍然存在,则可能需要检查以下事项: -是否在Optionsfor Target->Output中勾选了“Browse Information”(生成浏览信息)选项。 -是否在修改编译器后重新编译了整个工程(需要重新生成浏览信息)。我们将按照上述思路组织回答。</think>### Keil MDK-5 "No browse info for symbol in this context" 解决方法 该问题通常由**编译器版本不匹配**引起,旧工程使用V5编译器编写,而新安装的Keil MDK-5默认使用V6编译器。解决方法如下: #### 步骤详解 1. **下载V5编译器支持包** - 百度网盘链接:[https://pan.baidu.com/s/1E8U1jLm7Yxr5vXOU_BeRbQ](https://pan.baidu.com/s/1E8U1jLm7Yxr5vXOU_BeRbQ) 提取码:`exzc` [^3] - 备用链接:[https://pan.baidu.com/s/1q3XS6ch6PLfJHW3a3P1RwQ?pwd=uezi](https://pan.baidu.com/s/1q3XS6ch6PLfJHW3a3P1RwQ?pwd=uezi) 提取码:`uezi` [^4] 2. **安装编译器支持包** ```markdown a. 解压下载的文件到Keil安装目录的`ARM`文件夹 b. 路径示例:`C:\Keil_v5\ARM\` ``` 3. **配置编译器版本** - 打开工程 → 点击魔术棒按钮(Options for Target) - 转到`Target`选项卡 - 在`ARM Compiler`下拉菜单中选择`V5.06 update X (build XXXX)` ![编译器选择示意图](https://example.com/compiler_select.png) [^3] 4. **重新生成浏览信息** ```markdown a. 确保已勾选:Options for Target → Output → Browse Information b. 点击菜单栏 Rebuild 按钮(或按F7) c. 等待完整编译完成 ``` #### 验证是否解决 - 按住`Ctrl`键点击符号 - 或使用`F12`跳转到定义 - 成功跳转即表示问题解决 > **关键注意**:每次切换编译器后必须**重新编译整个工程**才能生成正确的浏览信息[^3]。 #### 其他可能原因排查 若问题仍存在,请检查: 1. 头文件路径是否在`Options for Target → C/C++ → Include Paths`中正确配置 2. 工程中是否包含所有必要源文件(尤其被跳转符号所在的文件) 3. 是否在`Options → Text Completion → Symbol browsing`中启用了符号浏览功能
评论 26
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值