2016年9月27日 星期二

編譯android 4.2.2 / 4.4 (Jelly Bean or kitkat)交叉编译器

2016.09.27
最近換了顆硬碟,所以又重裝系統了(Mint 18)…
(話說…聽說2016的WD黑標是個雷,所以就買seagate - ST1000LM035)
由於google採用openjdk了,所以java就改裝…open-jdk-7 or open-jdk-6 (openjdk-8不能用)
openjdk-7-jdk
openjdk-7-jre
openjdk-7-jre-headless
碰到版本衝突時…
sudo apt install -f
然後再用dkpg安裝一次,
(可以用sudo update-alternatives --config java切換java版本)
最後,再安裝這個
libjpeg62-turbo
其它的,如下2014.08.26步驟
因為系統將gcc升級到5.3了,所以在compile hashtable_itr.c時會出現問題
(external/mtd-utils/mkfs.ubifs/hashtable/hashtable_itr.c)
/*****************************************************************************/
/* key      - return the key of the (key,value) pair at the current position */
/* value    - return the value of the (key,value) pair at the current position */

//marked for gcc 5.3
/*
void *
hashtable_iterator_key(struct hashtable_itr *i)
{ return i->e->k; }

void *
hashtable_iterator_value(struct hashtable_itr *i)
{ return i->e->v; }
*/
external/mtd-utils/mkfs.ubifs/hashtable/hashtable_itr.h
/*****************************************************************************/
/* hashtable_iterator_key
 * - return the value of the (key,value) pair at the current position */

//modified for gcc 5.3
//extern inline void *
static inline void *
hashtable_iterator_key(struct hashtable_itr *i)
{
    return i->e->k;
}

/*****************************************************************************/
/* value - return the value of the (key,value) pair at the current position */

//modified for gcc 5.3
//extern inline void *
static inline void *
hashtable_iterator_value(struct hashtable_itr *i)
{
    return i->e->v;
}
ref : Here
2014.08.26
最近重裝了台電腦,所以環境又要重設,
卡很久才弄好,超麻煩的...
環境: Ubuntu 12.04

1. 安裝java,目前1.6最新的是6u45 (先裝1.6的,反正官方寫說到kitkat都能用1.6)
2.
$sudo apt-get install 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 \
     libgl1-mesa-dev g++-multilib mingw32 tofrodos \
     python-markdown libxml2-utils xsltproc zlib1g-dev:i386
ref: Google android
先確認路徑有該檔案,沒有的話, 請裝 libgl1-mesa-glx:i386 libgl1-mesa-dev
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so

以下是需要其它補裝的Q&A:
Q1. gcc: error trying to exec 'cc1plus': execvp: No such file or directory
A:1. 安裝 g++
  2. 確定 gcc -version 和 g++ -version 兩者版本是相同的
ref: Here
Q2. error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory
A: 安裝 lib32z1
ref: Here
Q3. error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory  make:***
A: 安裝 libc6-dev-i386
ref: Here
Q4. OSError: [Errno 2] No such file or directory
A: 安裝 git (這跟git有關 = =?)
Q5. xmllint: command not found
A: 安裝 libxml2-utils
ref: Here
Q6. libssl.so.0.9.8: cannot open shared object file: No such file or directory
A: 安裝 libssl0.9.8:i386
ref: Here
Q7. libxml2.so.2: cannot open shared object file: No such file or directory
A: 安裝 libxml2:i386
Q8.  libQtGui.so.4: cannot open shared object file: No such file or directory
A: 安裝 libqtgui4:i386
ref: Here
Q9. xmllint: cannot open shared object file: No such file or directory
A: 安裝 libxml2-utils

Q10. “fatal error: uuid/uuid.h: No such file or directory”
A: 安裝 uuid-dev
ref: Here
Q11. mkimage command not found
A: 安裝 uboot-mkimage
ref: Here
Q12. zconf.h no such file or directory
A: 安裝 zlib1g-dev
ref: Here
Q13. “fatal error: lzo/lzo1x.h: No such file or directory”
A: 安裝 liblzo2-dev
ref: Here
Q14. Cross Compile tool chain
A: 1. 安裝 gcc-arm-linux-gnueabihf & gcc-arm-linux-gnueabi
   2. 手動安裝: 載點 (要 aach64 的)
ref: 交叉编译器 arm-linux-gnueabi 和 arm-linux-gnueabihf 的区别

#------------android BSP-------------------
CROSS_COMPILE=/opt/arm-eabi-4.6/bin/arm-eabi-
#------------jdk environment---------------
#JAVA_HOME=/opt/java/jdk1.8.0_91
#JRE_HOME=/opt/java/jdk1.8.0_91/jre
JAVA_HOME=/opt/java/jdk1.7.0_67
JRE_HOME=/opt/java/jdk1.7.0_67/jre
#JAVA_HOME=/opt/java/jdk1.6.0_45
#JRE_HOME=/opt/java/jdk1.6.0_45/jre
NDK_HOME=/opt/android-ndk-r10b/
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$NDK_HOME:$CROSS_COMPILE
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/jre/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH CROSS_COMPILE NDK_HOME

沒有留言:

張貼留言