[应用相关] 不能找到函数的原始定义处

[复制链接]
wengh2016 发表于 2024-7-17 12:42 | 显示全部楼层
如果没有对工程进行编译,或者工程的编译信息被清除,那么Keil将无法找到函数的定义。解决方法是重新编译整个工程。
phoenixwhite 发表于 2024-7-17 17:33 | 显示全部楼层
可能忘记了包含相应的头文件,或者包含了错误的头文件。
51xlf 发表于 2024-7-17 22:52 | 显示全部楼层
Keil的项目设置中包含了所有必要的源文件和头文件。
tpgf 发表于 2024-7-18 14:32 | 显示全部楼层
楼主使用的软件是keil还是iar呢
晓伍 发表于 2024-7-18 15:15 | 显示全部楼层
phoenixwhite 发表于 2024-7-17 17:33
可能忘记了包含相应的头文件,或者包含了错误的头文件。

如果是这样的话 会报错的
观海 发表于 2024-7-18 19:33 | 显示全部楼层
wengh2016 发表于 2024-7-17 12:42
如果没有对工程进行编译,或者工程的编译信息被清除,那么Keil将无法找到函数的定义。解决方法是重新编译整 ...

有时候就在于重新编译也找不到相关的定义
八层楼 发表于 2024-7-18 20:05 | 显示全部楼层
感觉如果不报错 那么就是编译软件的bug了
minzisc 发表于 2024-7-18 20:10 | 显示全部楼层
这个源文件没有被添加到你的项目中,那么Keil也无法找到它的定义。
磨砂 发表于 2024-7-18 20:37 | 显示全部楼层
如果编译后没有报错还是找不到的话  可以在工程文件里边进行搜索
木木guainv 发表于 2024-7-18 21:09 | 显示全部楼层
有时候需要对工程文件进行重新编译
eefas 发表于 2024-7-19 09:52 | 显示全部楼层
只有当工程编译无误时,IDE才能生成必要的索引信息来定位源代码中的定义。
sesefadou 发表于 2024-7-19 14:15 | 显示全部楼层
检查你的#include指令,确保它们正确无误,并且包含了所有需要的声明。
robincotton 发表于 2024-7-19 18:15 | 显示全部楼层
如果启用了较高的优化级别,编译器可能会将某些函数内联,从而使得这些函数的原始定义在生成的代码中不可见。尝试降低优化级别,看看是否能解决问题。
mnynt121 发表于 2024-7-19 21:39 | 显示全部楼层
有时候即使编译成功,IDE也可能需要重新生成浏览信息。尝试清除并重新编译整个工程。
vivilyly 发表于 2024-7-21 22:25 | 显示全部楼层
将工程文件移到一个不包含中文或特殊字符的路径下,然后重新打开工程。
claretttt 发表于 2024-7-23 21:21 | 显示全部楼层
检查是否已将声明函数的头文件添加到需要使用该函数的源文件中。
wengh2016 发表于 2024-7-23 22:30 | 显示全部楼层
IDE的缓存或索引可能会出错,导致无法正确找到函数的定义。
lzbf 发表于 2024-7-24 08:05 | 显示全部楼层
在Keil µVision中,这通常在Project -> Options -> C/C++ Compiler -> Miscellaneous -> Generate Browse Information。
pmp 发表于 2024-7-24 11:03 | 显示全部楼层
如果函数定义在其他源文件中,需要将该文件添加到项目中以便Keil能够找到它。
uptown 发表于 2024-7-24 12:04 | 显示全部楼层
项目中的缓存或其他临时文件可能会导致问题,清理并重新构建项目可能会有所帮助。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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