gcc android开发环境,[RK3399][Android7.1]开发环境搭建
最后還是安裝了雙系統(tǒng),在Ubuntu16.04下編譯的,以下的解決方法依然后效;/(ㄒoㄒ)/~~
######################黃金分割線###########################
Virtual Machine:Vmware 14,
Linux:Ubuntu16.04,
Platform:RK3399
OS:Android7.1
因需要資源比較多,最好在linux系統(tǒng)下進(jìn)行編譯,如果是在Windows下的虛擬機(jī),內(nèi)存、硬盤空間需要較大。
我這邊是在Windows下的虛擬機(jī)開發(fā)的,下面是我搭建環(huán)境過程中遇到的一些問題和解決方法:
SSH公鑰的生成
最好不要在sudo、root的情況下進(jìn)行生成,如果是這樣生成的話,通過chmod、chown進(jìn)行修改權(quán)限,達(dá)到下圖相似的權(quán)限。
本人是重新搭了環(huán)境,所以類似于多人共用一個(gè)SSH公鑰
通過命令隨便生成一個(gè)公鑰,為了創(chuàng)建 .ssh文件夾;然后將剛剛創(chuàng)建的公鑰刪除掉,將發(fā)送給Rockchip的公鑰放到 .ssh文件夾
然后使用key-chain管理秘鑰(本步應(yīng)該不需要)
加載秘鑰 (如果無法repo,那就重啟下)$ ssh-add ~/.ssh/xxx
下載和解壓SDK
我是直接解壓SDK初始壓縮包,沒有直接從云端repo下
需要先安裝一些軟件包$ sudo apt update
$ sudo apt install git repo
解壓和更新
按照上述命令檢出源碼,最后一步會(huì)更新代碼庫,所以第一步要將秘鑰弄好,否則無法進(jìn)行下一步;
進(jìn)行uboot、kernel和Android的編譯
安裝openjdk-8-jdk和配置環(huán)境變量
$ sudo apt install openjdk-8-jdk
可以運(yùn)行工程目錄下的javaenv.sh,
$ source javaenv.sh
也可以在/etc/profile下更改、運(yùn)行export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
$ source /etc/profile
安裝編譯所需要的庫(估計(jì)很多不需要)$ sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev g++-multilib -y git flex bison gperf build-essential libncurses5-dev:i386 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386 dpkg-dev libsdl1.2-dev libesd0-dev git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev libgl1-mesa-dev libxml2-utils xsltproc unzip m4 lib32z-dev ccache
內(nèi)存問題
因?yàn)槭怯锰摂M機(jī)弄得,資源上沒有那么多,會(huì)導(dǎo)致一些問題出現(xiàn),主要是內(nèi)存問題,如果硬件支持,可以加大虛擬機(jī)內(nèi)存的使用量
修改虛擬機(jī)內(nèi)存容量
找到并打開/prebuilts/sdk/tools/jack-admin
prebuilts 就在解壓目錄下
例如下面代碼處加入-Xmx4g或者-Xmx4096M,這是修改編譯時(shí)的內(nèi)存空間,根據(jù)你的虛擬機(jī)配置內(nèi)存進(jìn)行相應(yīng)的修改,下面兩個(gè)只需要在其中一處加入就可以了,不需要兩處 vim xxx/prebuilts/sdk/tools/jack-admin
JACK_SERVER_VM_ARGUMENTS="${JACK_SERVER_VM_ARGUMENTS:=-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4g}"
JACK_SERVER_COMMAND="java -XX:MaxJavaStackTraceDepth=-1 -Djava.io.tmpdir=$TMPDIR $JACK_SERVER_VM_ARGUMENTS -Xmx4096M -cp $LAUNCHER_JAR $LAUNCHER_NAME"
:wq(保存)
prebuilts/sdk/tools/jack-admin kill-server
prebuilts/sdk/tools/jack-admin start-server
修改out/host/linux-x86/bin/jack-admin,應(yīng)該也是一樣的,這個(gè)是linux的
修改swap,是硬件內(nèi)存的兩倍,以下是找的一些鏈接,可以進(jìn)行參考
方法1
方法2
make -j[num],加快編譯速度,
虛擬機(jī)的話make就好o(╥﹏╥)o
修改虛擬機(jī)處理器數(shù)量
num與一般是以CPU的核心數(shù)目的兩倍為宜
make -j4,讓make最多允許4個(gè)編譯命令同時(shí)執(zhí)行
總結(jié)
以上是生活随笔為你收集整理的gcc android开发环境,[RK3399][Android7.1]开发环境搭建的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 错误代码105是什么意思?怎么办?
- 下一篇: 根雕如何选择合适的花架