基于MTK平台的不同安卓版本软件编译的JDK版本GCC版本切换脚本
2015-01-26 09:36
555 查看
本人做MTK平台驱动工作快两年了,最近从之前的4.2和4.4要切换到L版本了,相应的编译环境需要修改。因为MTK的建议是4.4之前的版本用Oracle JDK1.6.045和GCC4.4的版本,而L要用OPEN JDK 1.7和GCC4.6,这就带来了同一机器上不能编译不同版本安卓工程的麻烦,本文的目的是通过切换环境的脚本实现同一机器可以编译不能版本安卓工程的目的。
首先安装配置好Ubuntu 12.04 x64,然后
1.Update apt information
2.Install google recommended packages
3.Install JDKandGCC
然后将以下代码复制到文件下运行
配置完后只有只需要在编译对应工程前source对应的脚本(Android 4.4之前的版本对应JDK1.6GCC4.4.sh,Android L对应JDK1.6GCC4.4.sh),底下附上脚本源码。
JDK1.6GCC4.4.sh
JDK1.7GCC4.6.sh
首先安装配置好Ubuntu 12.04 x64,然后
1.Update apt information
$ sudo su - [sudo] password for android:****** root@android-machine:~$ apt-get update
2.Install google recommended packages
$ apt-get install -y git gnupg flex bison gperf build-essential \ zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \ libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \ g++-multilib mingw32 tofrodos libgl1-mesa-dev \ python-markdown libxml2-utils xsltproc zlib1g-dev:i386 $ ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
3.Install JDKandGCC
$ sudo apt-get -y install openjdk-7-jdk $ update-java-alternatives -s java-1.7.0-openjdk-amd64
$ mkdir /opt/java $ cd /opt/java/ $ chmod a+x jdk-6u45-linux-x64.bin $ ./jdk-6u45-linux-x64.bin
然后将以下代码复制到文件下运行
#!/bin/bash sudo update-alternatives --install /usr/bin/javah javah /opt/java/jdk1.6.0_45/bin/javah 255 sudo update-alternatives --install /usr/bin/javac javac /opt/java/jdk1.6.0_45/bin/javac 255 sudo update-alternatives --install /usr/bin/java java /opt/java/jdk1.6.0_45/bin/java 255 sudo update-alternatives --install /usr/bin/jar jar /opt/java/jdk1.6.0_45/bin/jar 255 sudo update-alternatives --install /usr/bin/javap javap /opt/java/jdk1.6.0_45/bin/javap 255 sudo update-alternatives --install /usr/bin/jps jps /opt/java/jdk1.6.0_45/bin/jps 255 sudo update-alternatives --install /usr/bin/jconsole jconsole /opt/java/jdk1.6.0_45/bin/jconsole 255 sudo update-alternatives --install /usr/bin/javadoc javadoc /opt/java/jdk1.6.0_45/bin/javadoc 255 sudo update-alternatives --install /usr/bin/appletviewer appletviewer /opt/java/jdk1.6.0_45/bin/appletviewer 255 sudo update-alternatives --install /usr/bin/apt apt /opt/java/jdk1.6.0_45/bin/apt 255 sudo update-alternatives --install /usr/bin/extcheck extcheck /opt/java/jdk1.6.0_45/bin/extcheck 255 sudo update-alternatives --install /usr/bin/idlj idlj /opt/java/jdk1.6.0_45/bin/idlj 255 sudo update-alternatives --install /usr/bin/jarsigner jarsigner /opt/java/jdk1.6.0_45/bin/jarsigner 255 sudo update-alternatives --install /usr/bin/jdb jdb /opt/java/jdk1.6.0_45/bin/jdb 255 sudo update-alternatives --install /usr/bin/javaws javaws /opt/java/jdk1.6.0_45/bin/javaws 255 sudo update-alternatives --install /usr/bin/jhat jhat /opt/java/jdk1.6.0_45/bin/jhat 255 sudo update-alternatives --install /usr/bin/jinfo jinfo /opt/java/jdk1.6.0_45/bin/jinfo 255 sudo update-alternatives --install /usr/bin/jmap jmap /opt/java/jdk1.6.0_45/bin/jmap 255 sudo update-alternatives --install /usr/bin/jrunscript jrunscript /opt/java/jdk1.6.0_45/bin/jrunscript 255 sudo update-alternatives --install /usr/bin/jsadebugd jsadebugd /opt/java/jdk1.6.0_45/bin/jsadebugd 255 sudo update-alternatives --install /usr/bin/jstack jstack /opt/java/jdk1.6.0_45/bin/jstack 255 sudo update-alternatives --install /usr/bin/jstat jstat /opt/java/jdk1.6.0_45/bin/jstat 255 sudo update-alternatives --install /usr/bin/jstatd jstatd /opt/java/jdk1.6.0_45/bin/jstatd 255 sudo update-alternatives --install /usr/bin/keytool keytool /opt/java/jdk1.6.0_45/bin/keytool 255 sudo update-alternatives --install /usr/bin/native2ascii native2ascii /opt/java/jdk1.6.0_45/bin/native2ascii 255 sudo update-alternatives --install /usr/bin/orbd orbd /opt/java/jdk1.6.0_45/bin/orbd 255 sudo update-alternatives --install /usr/bin/pack200 pack200 /opt/java/jdk1.6.0_45/bin/pack200 255 sudo update-alternatives --install /usr/bin/policytool policytool /opt/java/jdk1.6.0_45/bin/policytool 255 sudo update-alternatives --install /usr/bin/rmic rmic /opt/java/jdk1.6.0_45/bin/rmic 255 sudo update-alternatives --install /usr/bin/rmid rmid /opt/java/jdk1.6.0_45/bin/rmid 255 sudo update-alternatives --install /usr/bin/rmiregistry rmiregistry /opt/java/jdk1.6.0_45/bin/rmiregistry 255 sudo update-alternatives --install /usr/bin/schemagen schemagen /opt/java/jdk1.6.0_45/bin/schemagen 255 sudo update-alternatives --install /usr/bin/serialver serialver /opt/java/jdk1.6.0_45/bin/serialver 255 sudo update-alternatives --install /usr/bin/servertool servertool /opt/java/jdk1.6.0_45/bin/servertool 255 sudo update-alternatives --install /usr/bin/tnameserv tnameserv /opt/java/jdk1.6.0_45/bin/tnameserv 255 sudo update-alternatives --install /usr/bin/unpack200 unpack200 /opt/java/jdk1.6.0_45/bin/unpack200 255 sudo update-alternatives --install /usr/bin/wsgen wsgen /opt/java/jdk1.6.0_45/bin/wsgen 255 sudo update-alternatives --install /usr/bin/wsimport wsimport /opt/java/jdk1.6.0_45/bin/wsimport 255 sudo update-alternatives --install /usr/bin/xjc xjc /opt/java/jdk1.6.0_45/bin/xjc 255 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.4 40 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.6 60 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.4 40 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.6 60
配置完后只有只需要在编译对应工程前source对应的脚本(Android 4.4之前的版本对应JDK1.6GCC4.4.sh,Android L对应JDK1.6GCC4.4.sh),底下附上脚本源码。
JDK1.6GCC4.4.sh
export JAVA_HOME=/opt/java/jdk1.6.0_45export JRE_HOME=$JAVA_HOME/jreexport CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/libexport PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME/lib:$JAVA_HOME echo 1 | sudo update-alternatives --config java echo -e '\n' echo 1 | sudo update-alternatives --config javac echo -e '\n' echo 1 | sudo update-alternatives --config javah echo -e '\n' echo 1 | sudo update-alternatives --config jar echo -e '\n' echo 1 | sudo update-alternatives --config javap echo -e '\n' echo 1 | sudo update-alternatives --config jps echo -e '\n' echo 1 | sudo update-alternatives --config jconsole echo -e '\n' echo 1 | sudo update-alternatives --config javadoc echo -e '\n' echo 1 | sudo update-alternatives --config appletviewer echo -e '\n' echo 1 | sudo update-alternatives --config apt echo -e '\n' echo 1 | sudo update-alternatives --config extcheck echo -e '\n' echo 1 | sudo update-alternatives --config idlj echo -e '\n' echo 1 | sudo update-alternatives --config jarsigner echo -e '\n' echo 1 | sudo update-alternatives --config jdb echo -e '\n' echo 1 | sudo update-alternatives --config javaws echo -e '\n' echo 1 | sudo update-alternatives --config jhat echo -e '\n' echo 1 | sudo update-alternatives --config jinfo echo -e '\n' echo 1 | sudo update-alternatives --config jmap echo -e '\n' echo 1 | sudo update-alternatives --config jrunscript echo -e '\n' echo 1 | sudo update-alternatives --config jsadebugd echo -e '\n' echo 1 | sudo update-alternatives --config jstack echo -e '\n' echo 1 | sudo update-alternatives --config jstat echo -e '\n' echo 1 | sudo update-alternatives --config jstatd echo -e '\n' echo 1 | sudo update-alternatives --config keytool echo -e '\n' echo 1 | sudo update-alternatives --config native2ascii echo -e '\n' echo 1 | sudo update-alternatives --config orbd echo -e '\n' echo 1 | sudo update-alternatives --config pack200 echo -e '\n' echo 1 | sudo update-alternatives --config policytool echo -e '\n' echo 1 | sudo update-alternatives --config rmic echo -e '\n' echo 1 | sudo update-alternatives --config rmid echo -e '\n' echo 1 | sudo update-alternatives --config rmiregistry echo -e '\n' echo 1 | sudo update-alternatives --config schemagen echo -e '\n' echo 1 | sudo update-alternatives --config serialver echo -e '\n' echo 1 | sudo update-alternatives --config servertool echo -e '\n' echo 1 | sudo update-alternatives --config tnameserv echo -e '\n' echo 1 | sudo update-alternatives --config unpack200 echo -e '\n' echo 1 | sudo update-alternatives --config wsgen echo -e '\n' echo 1 | sudo update-alternatives --config wsimport echo -e '\n' echo 1 | sudo update-alternatives --config xjc echo -e '\n' echo 1 | sudo update-alternatives --config gcc echo -e '\n' echo 1 | sudo update-alternatives --config g++ echo -e '\n'
JDK1.7GCC4.6.sh
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64export JRE_HOME=$JAVA_HOME/jreexport CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/libexport PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME/lib:$JAVA_HOME echo 2 | sudo update-alternatives --config java echo -e '\n' echo 2 | sudo update-alternatives --config javac echo -e '\n' echo 2 | sudo update-alternatives --config javah echo -e '\n' echo 2 | sudo update-alternatives --config jar echo -e '\n' echo 2 | sudo update-alternatives --config javap echo -e '\n' echo 2 | sudo update-alternatives --config jps echo -e '\n' echo 2 | sudo update-alternatives --config jconsole echo -e '\n' echo 2 | sudo update-alternatives --config javadoc echo -e '\n' echo 2 | sudo update-alternatives --config appletviewer echo -e '\n' echo 2 | sudo update-alternatives --config apt echo -e '\n' echo 2 | sudo update-alternatives --config extcheck echo -e '\n' echo 2 | sudo update-alternatives --config idlj echo -e '\n' echo 2 | sudo update-alternatives --config jarsigner echo -e '\n' echo 2 | sudo update-alternatives --config jdb echo -e '\n' echo 2 | sudo update-alternatives --config javaws echo -e '\n' echo 2 | sudo update-alternatives --config jhat echo -e '\n' echo 2 | sudo update-alternatives --config jinfo echo -e '\n' echo 2 | sudo update-alternatives --config jmap echo -e '\n' echo 2 | sudo update-alternatives --config jrunscript echo -e '\n' echo 2 | sudo update-alternatives --config jsadebugd echo -e '\n' echo 2 | sudo update-alternatives --config jstack echo -e '\n' echo 2 | sudo update-alternatives --config jstat echo -e '\n' echo 2 | sudo update-alternatives --config jstatd echo -e '\n' echo 2 | sudo update-alternatives --config keytool echo -e '\n' echo 2 | sudo update-alternatives --config native2ascii echo -e '\n' echo 2 | sudo update-alternatives --config orbd echo -e '\n' echo 2 | sudo update-alternatives --config pack200 echo -e '\n' echo 2 | sudo update-alternatives --config policytool echo -e '\n' echo 2 | sudo update-alternatives --config rmic echo -e '\n' echo 2 | sudo update-alternatives --config rmid echo -e '\n' echo 2 | sudo update-alternatives --config rmiregistry echo -e '\n' echo 2 | sudo update-alternatives --config schemagen echo -e '\n' echo 2 | sudo update-alternatives --config serialver echo -e '\n' echo 2 | sudo update-alternatives --config servertool echo -e '\n' echo 2 | sudo update-alternatives --config tnameserv echo -e '\n' echo 2 | sudo update-alternatives --config unpack200 echo -e '\n' echo 2 | sudo update-alternatives --config wsgen echo -e '\n' echo 2 | sudo update-alternatives --config wsimport echo -e '\n' echo 2 | sudo update-alternatives --config xjc echo -e '\n' echo 2 | sudo update-alternatives --config gcc echo -e '\n' echo 2 | sudo update-alternatives --config g++ echo -e '\n'
相关文章推荐
- 编译不同版本Android源码,切换gcc和jdk
- linux下安装两个不同版本的交叉编译环境arm-linux-gcc4.4.3、arm-linux-gcc3.4.1,切换调用的解决
- JDK和JRE不同版本切换的问题
- arm-linux-gcc不同版本交叉编译器的切换使用
- 怎样让多个版本的JDK在系统环境中被不同依赖软件识别
- Ubuntu 10.04环境下载&编译Android源代码及JDK版本切换
- MyEclipse中项目利用不同版本JDK编译注意点
- Mac 系统不同jdk版本切换方法
- Qt creator中添加多个不同版本库,编译时相互切换
- 编译服务器切换JDK版本方法
- 编译android 出错, java JDK版本版本切换(ubuntu)
- gcc版本不同导致的编译错误?
- Mac系统不同jdk版本切换方法
- GCC不同版本的编译方法
- MTK平台屏幕切换机制探索--group机制(11A版本)
- 各平台基于GCC的链接库编译小结
- JDK 不同版本编译问题 ........
- linux上怎么切换不同版本的arm-linux-gcc?只需改一行函数
- 安卓训练-开始-支持不同的设备-支持不同的平台版本
- VS2010(32bit) + WIN7(64bit) 编译出不同平台程序版本