[i.MX] 求助:ubuntu上编译ltib出错

[复制链接]
 楼主| 晓宇2010 发表于 2014-8-16 08:58 | 显示全部楼层 |阅读模式
本帖最后由 晓宇2010 于 2014-8-16 09:39 编辑

今天在ubuntu 13.04 上编译ltib出现以下问题:

前期准备已经ok了,开始执行./ltib:
.......
./stdio.h:477:1: error: 'gets' undeclared here (not in a function)
_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
^
make[3]: *** [clean-temp.o] Error 1
make[3]: Leaving directory `/opt/freescale/ltib/usr/src/rpm/BUILD/m4-1.4.16/lib'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/opt/freescale/ltib/usr/src/rpm/BUILD/m4-1.4.16/lib'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/opt/freescale/ltib/usr/src/rpm/BUILD/m4-1.4.16'
make: *** [all] Error 2
error: Bad exit status from /opt/freescale/ltib/tmp/rpm-tmp.54808 (%build)

RPM build errors:
    Bad exit status from /opt/freescale/ltib/tmp/rpm-tmp.54808 (%build)
Build time for m4: 41 seconds

Failed building m4
Died at ./ltib line 1392.
......

编译m4出错,参考网友的做法

进入m4目录,把_GL_WARN_ON_USE (gets, "gets is a securityhole - use fgets instead");

注释掉,改为下面的条件编译语句

#if defined(__GLIBC__) &&!defined(__UCLIBC__) &&!__GLIBC_PREREQ(2, 16)
_GL_WARN_ON_USE (gets, "gets is a security hole -use fgets instead");
#endif


在m4目录里面执行make可以通过了,但再去执行ltib还是过不了,提示
These packages failed to build:
m4

Build Failed

请问怎么办呢?(注:BSP是i.MX6 L3.0.35_4.1.0_130816_source)



 楼主| 晓宇2010 发表于 2014-8-16 11:03 | 显示全部楼层
暂时解决了,但不治本啊,我是把那stdio.h文件修改后制作成补丁,在解压后加上打补丁的步骤过了,哈哈~~但有没有更好的方法呢?
FSL_TICS_Jeremy 发表于 2014-8-18 09:45 | 显示全部楼层
楼主,你好!
我会将你的问题转告给i.MX工程师,他稍后会回复你的。
FSL_TICS_Rita 发表于 2014-8-18 14:19 | 显示全部楼层
本帖最后由 FSL_TICS_Rita 于 2014-8-18 14:21 编辑
晓宇2010 发表于 2014-8-16 11:03
暂时解决了,但不治本啊,我是把那stdio.h文件修改后制作成补丁,在解压后加上打补丁的步骤过了,哈哈~~但 ...

楼主你好,请问你使用的板子是哪块?
FSL_TICS_Rita 发表于 2014-8-18 15:17 | 显示全部楼层
楼主你好,按照本论坛中的在ubuntu12.04上编译的那个文档就是可以编译成功的。建议你参考一下:https://bbs.21ic.com/icview-680340-1-1.html。如果还不成功,联系我哈~~

评分

参与人数 1威望 +2 收起 理由
晓宇2010 + 2 很给力!

查看全部评分

 楼主| 晓宇2010 发表于 2014-8-18 21:51 | 显示全部楼层
FSL_TICS_Rita 发表于 2014-8-18 15:17
楼主你好,按照本论坛中的在ubuntu12.04上编译的那个文档就是可以编译成功的。建议你参考一下:http://bbs. ...

我有参照这个文档的,但我的系统是13.10的,不知道会不会还有点区别~~昨天比较赶,所以就没有再回去理这个了,谢谢啊
FSL_TICS_Rita 发表于 2014-8-19 09:24 | 显示全部楼层
晓宇2010 发表于 2014-8-18 21:51
我有参照这个文档的,但我的系统是13.10的,不知道会不会还有点区别~~昨天比较赶,所以就没有再回去理这 ...

楼主你好,区别不大的。如果有问题再创帖提问哈:)~~
FSL_TICS_Rita 发表于 2014-8-19 09:25 | 显示全部楼层
楼主如果本帖中的问题已经解决,麻烦帮忙结帖哈~~
小艾的 发表于 2015-1-22 15:19 | 显示全部楼层
是clean-temp.h 用的是标准路径下的stdio.h,修改标准路径下的stdio.h将gets的声明放到#ifdef外面就行了
烂了的芋头 发表于 2016-3-12 09:21 | 显示全部楼层
请问9楼, “标准路径下的stdio.h将gets的声明放到#ifdef外面” 能不能给出具体位置,谢谢!
烂了的芋头 发表于 2016-3-12 09:23 | 显示全部楼层
用的15.04版本的Ubuntu 也出现和楼主一样的问题。快疯了。。
mini1986 发表于 2016-3-15 09:59 | 显示全部楼层
烂了的芋头 发表于 2016-3-12 09:23
用的15.04版本的Ubuntu 也出现和楼主一样的问题。快疯了。。

有个关于m4的14.04的补丁,论坛里找找吧......
烂了的芋头 发表于 2016-3-21 11:27 | 显示全部楼层
mini1986 发表于 2016-3-15 09:59
有个关于m4的14.04的补丁,论坛里找找吧......

恩,谢谢,已经搞定了。:lol
zhanghaigangly 发表于 2016-4-7 09:47 | 显示全部楼层
我的天!修改标准路径下的stdio.h这个办法都给得出来……
这个问题看起来是m4包编译的时候没有 -D_GNU_SOURCE 楼上说的找m4的补丁还靠谱一点,或者自己修改m4包的编译参数。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

75

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部