ubuntu 16.04编译android 4.0将make 4.1版本降低为make 3.8版本

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步)

提示如下图:
![编译报错](https://img-blog.csdnimg.cn/2018112521103886.pngubuntu 16.04编译android 4.0将make 4.1版本降低为make 3.8版本_第1张图片
提示“——alloca”宏未定义!

我一直迷信官网源码没问题,怀疑自己哪里操作不对,一直找啊找。。。。。

最后终于撑不住了,改了源码,改了之后就可以了。。。。。

6、OK,第六步。修改源码,看了提示中的make-3.81/glob/glob.c文件,然而并没有看懂。。。
不过死马当作活马医,在里面加了这个:
首先,在make-3.81文件夹下

gedit glob/glob.c

然后232行,也就是图中#endif下面加了

# define __alloca	alloca

ubuntu 16.04编译android 4.0将make 4.1版本降低为make 3.8版本_第2张图片
7、然后再重复第5步,执行make命令。
这次就不会报错啦。当然如果你人品不好有可能还会报错,报错的话就修改,知道变异通过。

8、然后安装!(终于到了这一步了啊啊啊啊)

make install

9、查下看看是否安装成功。

./make -version

提示:在这里插入图片描述说明3.81的安装成功了,但是别着急,还有最后一步!!!

注意要在你解压的那个目录下!!!从第4步开始都是在解压的文件夹目录下执行的。

9、替换掉之前的make

sudo cp make /usr/bin/make

然后你随便在哪个目录下试下:make -version
看下是不是你想要的版本!!

ok,到这里就结束啦,废话写的太多了,可能是因为处于解决问题之后的兴奋。

你可能感兴趣的:(安卓)