ubuntu 16.04编译android 4.0将make 4.1版本降低为make 3.8版本 遇到报错的情况!!!手把手带你解决
我按照网友的方法降版本试了n久不行,几近抓狂,因为在make-3.81文件夹中怎么都生成不了make可以执行文件。
几经尝试,终于成功了,写一下解决办法,分享下经验。
首先
编译安卓源代码时出现:
build/core/main.mk:43: * You are using version 4.1 of make.
build/core/main.mk:44: * Android can only be built by version 3.81.
build/core/main.mk:45: * see http://source.android.com/source/download.html
说明需要降make版本。Ubuntu16.04预装的是4.1的。
ok,怎么降版本呢?
解决步骤:
1、去ftp://ftp.gnu.org/gnu/make/ 下载目标版本: make-3.8.1.tar.gz
我们在这个ftp上下载的是make-3.8.1的源码,所以先要编译,然后安装,替换。下面就是执行这个过程。
2、任意目录解压tar -xjvf make-3.81.tar.bz2
tar -zxvf make-3.81.tar.bz2
3、cd 到解压文件夹下
cd make-3.81
4、进行配置
./configure
5、编译,因为是代码,所以还是要去编译的
make
好了,重点来了。我的这个时候编译报错。(没有报错的可以直接跳过到第8步)
提示如下图:
![编译报错](
提示“——alloca”宏未定义!
我一直迷信官网源码没问题,怀疑自己哪里操作不对,一直找啊找。。。。。
最后终于撑不住了,改了源码,改了之后就可以了。。。。。
6、OK,第六步。修改源码,看了提示中的make-3.81/glob/glob.c文件,然而并没有看懂。。。
不过死马当作活马医,在里面加了这个:
首先,在make-3.81文件夹下
gedit glob/glob.c
然后232行,也就是图中#endif下面加了
# define __alloca alloca
7、然后再重复第5步,执行make命令。
这次就不会报错啦。当然如果你人品不好有可能还会报错,报错的话就修改,知道变异通过。
8、然后安装!(终于到了这一步了啊啊啊啊)
make install
9、查下看看是否安装成功。
./make -version
提示:
说明3.81的安装成功了,但是别着急,还有最后一步!!!
注意要在你解压的那个目录下!!!从第4步开始都是在解压的文件夹目录下执行的。
9、替换掉之前的make
sudo cp make /usr/bin/make
然后你随便在哪个目录下试下:make -version
看下是不是你想要的版本!!
ok,到这里就结束啦,废话写的太多了,可能是因为处于解决问题之后的兴奋。