更改Android编译软件版本(make/gcc/bision)


一.make版本

1.下载make的压缩包

http://www.oracle.com/technetwork/java/javase/archive-139210.html

  1.2 复制到/usr/lib/jvm下

sudo cp jdk-6u45-linux-x64.bin /usr/lib/jvm

  1.3 增加可执行权限

sudo chmod 777 jdk-6u45-linux-x64.bin

  1.4 解压

sudo ./jdk-6u45-linux-x64.bin

  1.5 配置环境变量

sudo gedit /etc/environment

    在最后添加如下信息,保存退出

export PATH=/usr/lib/jvm/jdk1.6.0_45/bin:$PATH

    使用如下命令使环境变量生效

source /etc/environment

2.配置jdk,其中Android4.0不需要配置javap,而Android4.4以上版本需要配置

update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.6.0_45/bin/java" 1
update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk1.6.0_45/bin/javac" 1
update-alternatives --install "/usr/bin/javadoc" "javadoc" "/usr/lib/jvm/jdk1.6.0_45/bin/javadoc" 1
update-alternatives --install "/usr/lib/mozilla/plugins/libjavaplugin.so" "mozilla-javaplugin.so" "/usr/lib/jvm/jdk1.6.0_45/jre/lib/amd64/libnpjp2.so" 1
update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/lib/jvm/jdk1.6.0_45/bin/javaws" 1
update-alternatives --install "/usr/bin/javap" "javap" "/usr/lib/jvm/jdk1.6.0_45/bin/javap" 1
update-alternatives --install "/usr/bin/jar" "jar" "/usr/lib/jvm/jdk1.6.0_45/bin/jar" 1

3.更新jdk配置

sudo update-alternatives --config java
sudo update-alternatives --config javac
sudo update-alternatives --config javadoc
sudo update-alternatives --config mozilla-javaplugin.so
sudo update-alternatives --config javaws
sudo update-alternatives --config javap
sudo update-alternatives --config jar

 4.查看版本信息

java -version
javac -version

四.bison版本

1.下载bison的压缩包

http://ftp.gnu.org/gnu/bison/

2.解压,安装

cd bison-x.x
./configure
make
sudo make install

   Bison版本不对,可能会引发如下错误(以下错误基于Bison3.0.4与Bison3.0.2,Bison2.7.1不会报该错误

 1 In file included from plural.y:35:0:
 2 plural-exp.h:94:23: error: conflicting types for 'libintl_gettextparse'
 3  # define PLURAL_PARSE libintl_gettextparse
 4                        ^
 5 plural.y:40:25: note: in expansion of macro 'PLURAL_PARSE'
 6  # define __gettextparse PLURAL_PARSE
 7                          ^
 8 plural.c:187:5: note: in expansion of macro '__gettextparse'
 9  int __gettextparse (void);
10      ^
11 plural-exp.h:94:23: note: previous declaration of 'libintl_gettextparse' was here
12  # define PLURAL_PARSE libintl_gettextparse
13                        ^
14 plural-exp.h:106:12: note: in expansion of macro 'PLURAL_PARSE'
15  extern int PLURAL_PARSE (void *arg);
16             ^
17 plural-exp.h:94:23: error: conflicting types for 'libintl_gettextparse'
18  # define PLURAL_PARSE libintl_gettextparse
19                        ^
20 plural.y:40:25: note: in expansion of macro 'PLURAL_PARSE'
21  # define __gettextparse PLURAL_PARSE
22                          ^
23 plural.c:63:25: note: in expansion of macro '__gettextparse'
24  #define yyparse         __gettextparse
25                          ^
26 plural.c:1108:1: note: in expansion of macro 'yyparse'
27  yyparse (void)
28  ^
29 plural-exp.h:94:23: note: previous declaration of 'libintl_gettextparse' was here
30  # define PLURAL_PARSE libintl_gettextparse
31                        ^
32 plural-exp.h:106:12: note: in expansion of macro 'PLURAL_PARSE'
33  extern int PLURAL_PARSE (void *arg);
34             ^
35 plural.c: In function 'libintl_gettextparse':
36 plural.c:1277:7: error: too few arguments to function '__gettextlex'
37        yychar = yylex (&yylval);
38        ^
39 plural.c:64:25: note: declared here
40  #define yylex           __gettextlex
41                          ^
42 plural.y:57:12: note: in expansion of macro 'yylex'
43  static int yylex (YYSTYPE *lval, const char **pexp);
44             ^
45 plural.y:154:29: error: 'arg' undeclared (first use in this function)
46       ((struct parse_args *) arg)->res = $1;
47                              ^
48 plural.y:154:29: note: each undeclared identifier is reported only once for each function it appears in
49 Makefile:192: recipe for target 'plural.o' failed
50 make[3]: *** [plural.o] Error 1