内联函数(inline)相关的编译错误

   日期:2020-09-06     浏览:371    评论:0    
核心提示:内联函数(inline)相关的编译错误1.重定义(redefinition)2.receive.c:562:7: warning: expect_at_least is static but used in inline function get_gap which is not static编译第三开源包的时遇到了一些问题,在海思提供的工具链(arm-gcc49-linux-gnueabihf-4.9.4)没遇到错误,换用mtk 的工具链(arm-linux-gnueabihf-7.2.1)编

内联函数(inline)相关的编译错误

  • 1.重定义(redefinition)
  • 2.receive.c:562:7: warning: 'expect_at_least' is static but used in inline function 'get_gap' which is not static

编译第三开源包的时遇到了一些问题,在海思提供的工具链(arm-gcc49-linux-gnueabihf-4.9.4)没遇到错误,
换用mtk 的工具链(arm-linux-gnueabihf-7.2.1)编译时,遇到如下内联函数相关错误

1.重定义(redefinition)

lircd

mkfs.ubifs/hashtable/hashtable_itr.c:42:1: error: redefinition of ‘hashtable_iterator_key’
hashtable_iterator_key(struct hashtable_itr *i)
^~~~~~~~~~~~~~~~~~~~~~
In file included from mkfs.ubifs/hashtable/hashtable_itr.c:5:0:
mkfs.ubifs/hashtable/hashtable_itr.h:32:1: note: previous definition of ‘hashtable_iterator_key’ was here
hashtable_iterator_key(struct hashtable_itr *i)
^~~~~~~~~~~~~~~~~~~~~~

查看代码发现
hashtable_itr.c 中

void *
hashtable_iterator_key(struct hashtable_itr *i)
{ return i->e->k; }

hashtable_itr.h 中

extern inline void *
hashtable_iterator_key(struct hashtable_itr *i)
{
    return i->e->k;
}

解决方法:
在CFLAGS 中加入 -fgnu89-inline

export CFLAGS=" -fgnu89-inline "

2.receive.c:562:7: warning: ‘expect_at_least’ is static but used in inline function ‘get_gap’ which is not static

mtd-utils
后面链接报错
receive.c:(.text+0x21fe): undefined reference to get_gap' receive.c:(.text+0x2210): undefined reference toget_gap’

解决方法:(同上)
在CFLAGS 中加入 -fgnu89-inline

export CFLAGS=" -fgnu89-inline "

遇到类似的问题可以参考

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服