我收到链接错误,因为函数在.h文件中声明,但其定义已注释。 以下是链接错误: ---链接错误--- 错误:L6218E:未定义的符号clk_SetHMSSAPMFreqPlan(引用 来自VVDRV_clk_glue.o)。
现在,调用函数的文件有多个嵌套if块,如下所示:
#if defined(COMPILING_APPS_PROC) || defined(COMPILING_SPM_PROC)
#ifndef AXF_BUILD
eClkResult clk_SetFreqPlan(eClockFrequencyType eFreqPlan, uint32 eSubsystemLists) {
----some code----
#if defined(COMPILING_APPS_PROC) && !defined(AXF_BUILD)
clk_SetHMSSAPMFreqPlan(0, eFreqPlan); /* This function is giving a linking error */
#endif
#endif /*AXF_BUILD*/
#endif /*COMPILING_APPS_PROC*/
为了克服链接错误,我在文件顶部声明宏: #ifndef AXF_BUILD #define AXF_BUILD 1 #ENDIF
因为必须保持定义另一个宏COMPILING_APPS_PROC,所以我无法改变它。
由于现在定义了AXF_BUILD,我期望函数clk_SetHMSSAPMFreqPlan(0,eFreqPlan)不会被编译,编译应该是干净的。但是,我仍然得到相同的链接错误。可能是什么原因?