[开发工具] keil c51编译环境不能跳转函数的解决办法

[复制链接]
7164|36
 楼主| jkl21 发表于 2024-2-28 22:42 | 显示全部楼层 |阅读模式
最近使用keil c51 开发usb固件,当向vc一样使用Go to Definition of....时,出现警告对话框:
check-[target-options][output][browse information] then rebuild the target!

1、代码中嵌有汇编,汇编代码去掉后能查看。

2、选中target1,然后点击右键,选择 option for target 'target1' ,在弹出的对话框中选择output选项卡,看Browse information 选项有没有勾选,如果没有,请勾选,然后把你的工程rebuild 一次。

flycamelaaa 发表于 2024-3-4 19:21 | 显示全部楼层
重新编译整个工程
powerantone 发表于 2024-3-4 20:59 | 显示全部楼层
检查工程名称和文件路径
AdaMaYun 发表于 2024-3-5 18:20 | 显示全部楼层
看楼主说的解决方法还是跟设置有关系
LOVEEVER 发表于 2024-3-9 16:15 | 显示全部楼层
设置导致问题发生的概率还是挺大的
sdlls 发表于 2024-5-1 20:16 | 显示全部楼层
如果函数是在特定条件下才被编译的,那么在这些条件不满足时, 将无法跳转到这些函数的定义。
jimmhu 发表于 2024-5-1 21:21 | 显示全部楼层
在编译过程中,Keil C51会生成警告和错误信息。仔细阅读这些信息,它们通常会指出问题的所在。
saservice 发表于 2024-5-1 22:35 | 显示全部楼层
所有函数调用都遵循正确的调用约定,特别是对于有参函数,要确保参数传递方式正确。
kmzuaz 发表于 2024-5-2 19:07 | 显示全部楼层
错误的编译选项可能会导致编译器无法正确处理函数跳转。
caigang13 发表于 2024-5-2 19:42 来自手机 | 显示全部楼层
KEIL C51不是8位机的吗?8位MCU有USB外设?
hearstnorman323 发表于 2024-5-2 19:51 | 显示全部楼层
函数调用的语法是否正确,包括函数名、参数列表以及括号的使用。
averyleigh 发表于 2024-5-2 20:37 | 显示全部楼层
如果函数定义在调用之后,编译器可能无法识别函数。
zerorobert 发表于 2024-5-2 21:25 | 显示全部楼层
对于C语言来说,如果函数的声明(原型)在函数定义之前,那么声明必须包含函数的返回类型和参数类型。
tifmill 发表于 2024-5-3 09:42 | 显示全部楼层
如果使用的是较旧的Keil版本,可能存在bug或性能问题。尝试更新到最新版本。
cashrwood 发表于 2024-5-3 12:46 | 显示全部楼层
如果工程编译失败,那么自然无法跳转到函数定义。你需要根据编译器的提示信息检查和修复代码中的错误,直到工程能够正常编译通过。
modesty3jonah 发表于 2024-5-3 15:47 | 显示全部楼层
查看编译器输出的错误信息,根据错误信息进行相应的修改。
mikewalpole 发表于 2024-5-4 11:48 | 显示全部楼层
如果没有生成,可能是因为Output选项卡中的“Browse Information”选项未勾选。在项目设置中找到该选项并勾选,然后重新编译项目。
rosemoore 发表于 2024-5-4 15:51 | 显示全部楼层
确保所有的函数都已经被正确声明,并且在同一个作用域内。如果函数是在另一个文件中定义的,那么需要确保该文件已经被正确包含。
pl202 发表于 2024-5-4 16:48 | 显示全部楼层
在Keil的项目选项中,确保勾选了生成浏览信息(Browse Information)的选项。这样在重新构建项目后,Keil才能够提供函数跳转的功能。
10299823 发表于 2024-5-4 21:58 | 显示全部楼层
如果工程文件位于含有中文的目录下,这可能会导致跳转问题。你可以尝试将工程移出含有中文的目录,新建工程时尽量放在不含中文的文件夹中。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

46

主题

3688

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部