我在头文件中声明函数,源文件有定义,在有引入头文件的情况下调用的时候却找不到函数,头文件点击函数跳转不到源文件,全局搜索函数时找不到源文件的这个函数,最后是因为没有引入这个源文件
一、我在MQTT_Client_Task中使用了random_string,编译时候报错MQTT_Usart\MQTT_Usart.axf: Error: L6218E: Undefined symbol random_string (referred from at_command.o).
二、问题排查,起初我以为没引入头文件,于是添加头文件,编译还是报错
三、接着我又添加了头文件的路径,还是报错
四、接着我在random.h中,想要跳转random_string这个函数,看看random.c中有没有定义,跳转不到。
五、但是random.c中确实有这个函数
六、接着我找了一下,却是没有random的源文件添加进工程里面(random.c)
七、添加之后,编译成功。
最后,快捷查找你的项目中有没有添加源文件的方法:
- 找到项目文件,通常是 F103_Moduel.uvproj 或 F103_Moduel.uvprojx,位于项目根目录。
- 用文本编辑器(如 Notepad++)打开该文件。
- 搜索 random.c(Ctrl+F 输入 random.c)。
如果有添加源文件了,就显示:
如果没有添加,就显示: