编译uboot时遇到问题:/home/book/test/u-boot-2012.04.01/include/image.h:536:12: warning: inline function ‘fit_parse_subimage’ declared but never defined
问题中文意思是:内联函数声明但未定义,网上搜索解决方法是需要在编译时加上-fgnu89-inline
为什么?
原因是gcc编译器对于inline函数处理的方式变化导致告警;在gcc4.3及以上的版本中,编译选项采用C99标准,对于inline函数的解释过严导致,需要使用传统模式进行编译,将编译选项改为C89标准。
参考:inline函数未定义的引用报错之 -fgnu89-inline
在哪里添加?
研究告警信息:In file included from aisimage.c:29:0:
/home/book/test/u-boot-2012.04.01/include/image.h:536:12: warning: inline function ‘fit_parse_subimage’ declared but never defined
搜索aisimage.c,发现出现在/home/book/test/u-boot-2012.04.01/tools/Makefile文件中,打开该Makefile文件,在HOSTCPPFLAGS后添加-fgnu89-inline
HOSTCPPFLAGS = -idirafter $(SRCTREE)/include \
-idirafter $(OBJTREE)/include2 \
-idirafter $(OBJTREE)/include \
-I $(SRCTREE)/lib/libfdt \
-I $(SRCTREE)/tools \
-DCONFIG_SYS_TEXT_BASE=$(CONFIG_SYS_TEXT_BASE) \
-DUSE_HOSTCC \
-D__KERNEL_STRICT_NAMES \
-fgnu89-inline
重新编译后问题解决