最近从澳门入手了部MotorolaROKRE6(OS内核是Linux的),就顺便研究了下该手机的交叉编译。
途中,编译busybox的时候遇到了怪异的错误:
GEN.depend
/home/xxx/busybox-1.1.3/include/bbconfigopts.h:28hmm,unterminated
make[1]:***[.depend]Erreur1
make:***[_all]Erreur2
在网上查了一番资料,说是与ubuntu的兼容问题。并且有人提供了一种解决方案:
Apaprentlyit''sduetomyubuntuawk/sedversion,herethesolutionincasesomeone
elsefallontheproblem:
inthefilebusybox-1.2.0/scripts/config/mkconfigs,Ireplaced
echo"`sed''s/\"/\\\\\"/g''$config|grep"^#\?\?CONFIG_"|awk
''{print"\\""$0"\\\\n\\"";}''`"
by
echo"`sed''s/\"/\\\\\"/g''$config|grep"^#\?\?CONFIG_"|awk
''{print"\\""$0"\\"";}''`"
我不清楚是1.1.3和1.2.0版本不同还是别的什么问题,以上方法在我的机器上依然不奏效。我只好大致看了下scripts/config/mkconfigs、include/bbconfigopts.h和该工程的若干个Makefile,终于明白其实bbconfigopts.h是在makebusybox的时候(在makeconfig之后)由shell脚本mkconfigs自动生成的,那么问题就变得明白了。
用vi打开mkconfigs,找到第63行的:
echo"staticcharconstbbconfig_config[]="
echo"\"CONFIG_BEGIN=n\\n\\"
echo"`sed''s/\"/\\\\\"/g''$config|grep"^#\?\?CONFIG_"|awk''{print$0"\\\\n\\\\"}''`"
echo"CONFIG_END=n\\n\";"
echo"#endif/*_BBCONFIG_H*/"
改为:
echo"staticcharconstbbconfig_config[]="
echo"\"CONFIG_BEGIN=n\\\n\""
echo"`sed''s/\"/\\\\\"/g''$config|grep"^#\?\?CONFIG_"|awk''{print"\\""$0"\\""}''`"
echo"\"CONFIG_END=n\\\n\";"
echo"#endif/*_BBCONFIG_H*/"
编译通过!
记住,make之前要先makeclean!
解决ubuntu下编译busybox失败的方法解决ubuntu下编译busybox失败的方法解决ubuntu下编译busybox失败的方法解决ubuntu下编译busybox失败的方法解决ubuntu下编译busybox失败的方法解决ubuntu下编译busybox失败的方法解决ubuntu下编译busybox失败的方法解决ubuntu下编译busybox失败的方法解决ubuntu下编译busybox失败的方法解决ubuntu下编译busybox失败的方法
阅读(1229) | 评论(0) | 转发(0) |