当前位置:首页 > 问问

keil为什么点不进定义 Keil定义无法访问的解决方案

1、Keil为什么点不进定义

在使用Keil进行STM32的开发时,常常会遇到一个问题:鼠标点进某个函数的定义时,Keil并不会跳转到该函数的定义处。这个问题很烦人,也会造成我们的开发效率低下。下面从几个方面来探讨这个问题的原因。

2、头文件和路径设置

Keil跳转到函数定义的关键是要知道这个函数定义在哪里。所以如果头文件没有正确的包含,Keil就无从知道这个函数定义的位置。因此,一定要保证头文件的include路径设置正确无误。

在Keil中,可以通过Options -> C/C++ -> Include Paths来对头文件路径进行设置。如果不知道自己的头文件路径在哪里,可以通过GCC编译器生成的错误信息来找到,查看错误信息的时候会显示哪个头文件无法找到。

3、函数定义位置

有时候即使头文件正确包含了,Keil仍然无法找到函数定义的位置。这时候,就要检查一下这个函数定义在哪个文件中。如果定义在源文件中,那么无论操作多少次,鼠标点进去都不会成功。因为Keil没有将源文件的位置作为搜索范围。

所以,如果我们需要查看某个函数的定义,可以通过在函数名称上按下F12键,打开Call Graph窗口,从而查看函数被调用的位置和调用关系。如果找到了调用这个函数的函数名称,可以通过右键单击该函数名称,选择“Go to Definition”来跳转到该函数的定义处。

4、函数定义的混淆问题

在进行代码混淆或者加密时,为了防止被反编译,可能会把某一个文件中的函数重命名,或者将函数的定义进行分离。这个时候,Keil就很难找到这个函数的定义了,因为现在这个函数不再是按照正常规则命名的函数了。

如果代码确实需要进行加密或混淆,请在加密或混淆前,先备份一份未加密或混淆的代码。这样,在需要查找函数定义位置的时候,就可以使用未加密或混淆的代码进行查找了。

声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:fendou3451@163.com
标签:

  • 关注微信

相关文章