X264移植android问题记录(No working C compiler found)

对于x264移植到android的步骤,大多数人都能按照文档一步步做下来,有的人能一步成功,有的则大费周折,甚至有的人止步于一些错误。


根据我的经验,这个过程最大的拦路虎就是错误“No working C compiler found”  所以在标题也加了这个,方便更多需要的人搜索到。


如果大家为这个头痛,希望大家把这篇blog看到最后,这个过程也是我犯错误和理解错误,直到最后解决的过程。


=======================================================================================================================

网上搜索了很多这方面的资料,不知道是ndk版本问题,还是x264代码版本的问题。网上的方法都不成功,直到遇到这篇帖子,简单的就解决了问题。


http://ubuntuforums.org/showthread.php?t=1757181


I just downloaded it from here to try it:

http://www.videolan.org/developers/x264.html

I ran ./configure. It complained that I didn't have an assembler and suggested I ran ./configure --disable-asm. Then all seemed to compile OK.

How did you install gcc? From the repositories?


其实,只要简简单单做几步就能编译出libx264.a了


1,下载x264的代码

2,解压到ubuntu的目录里, 我的是/home/seafit/project/x264lib

3,运行./configure  ,如果出错按照提示运行  ./configure --disable-asm.  然后就成功了。

4,运行make。  一会就编译出libx264.a了。


我的配置是ubuntu14.04  + android-ndk-r10 + x264的代码是昨天最新的。

============================================================================================================================


我编译出libx264.a之后,兴奋得不行,终于把问题解决了,所以一开始记录了上面的过程和解决办法。 但是突然发现上面编译出来的libx264.a是在linux下的,android下的libx264.a是需要交叉编译的,而上面根本就没有交叉编译。 其实也就是configure帮助里的3个重要的选项

Cross-compilation:
  --host=HOST              build programs to run on HOST
  --cross-prefix=PREFIX    use PREFIX for compilation tools
  --sysroot=SYSROOT        root of cross-build tree


如果,不加上面的参数,是可以直接一步到位编译出libx264.a的,


我配置的步骤一直是按照http://blog.csdn.net/huahuahailang/article/details/27373169 这篇文章来做的。每一步都按照做了,结果还是出“No working C compiler found” 

后来就仔细看configure文件,后来又看到了config.log 这个帮了很大的忙,里面能把路径完完全全显示出来。咋一看也没发现什么问题。因为以前经常做二进制编辑,所以我用notepad++的时候,总是会显示所有符号,对于换行,结尾等符号,notepad++是特别明显的,后来终于发现了每行结尾都是CRLF. 问题就出在这里。


NOTEPAD++的菜单->编辑->EOL conversion,里将格式选为unix格式,再编译,就通过了。 大家看到这个操作就知道是干嘛了。


这个问题隐藏得太深了,我折腾了几乎整整一天,本来一直寄希望于网上能找到解决办法,基本上google,百度等等都翻遍了。后来不得不硬着头皮自己解决,所以看日志才是真正找原因的办法。


另外 “No working C compiler found”  这个错误很容易让人疑惑,绝大多数人都会认为是编译工具找不到,实际不是。

具体的过程是生成一个conftest.c的文件,尝试编译这个文件,如果编译不过,或者找不到库文件,等等错误,都会报上面的错误。真是一个大坑。


最后,祝大家都能顺利解决。



  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值