前言
问题描述:
问个技术问题:keil C51在之前的老程序上增加了一个xx.c文件,里面有个方法fun(),然后原来的main.c中会调用xx.c文件的fun()函数。现在有个问题是:如果按照这个写法,fun()调用不到。但那fun()的定义移到main.c是可以的。不知道为什么?
同时,按照最初的方法,断点调试时,fun()里面也无法打上断点。给我的感觉是这个函数就没有被链接到可执行文件。但编译也没有报错,不知道问题出在哪了。
和群友讨论了一下:怀疑在编译main.c文件时,有一些告警被忽略了。
告警如下:WARNING L1: UNRESOLVED EXTERNAL SYMBOL
于是怀疑:
我就想可能是没找到被调用函数的定义。怀疑还是整体构建时,没构建xx.c有关。
问题解决
发现构建时,没有把xx.c文件添加到整个构建中。这也符合我们前面的猜测。
添加后,问题解决。