一. 下載官方源碼 https://github.com/golang/mobilelinux
git clone https://github.com/golang/mobile.git
二. 將mobile目錄移動到 $gopath/golang.org/x中android
mkdir -p $gopath/golang.org/x && mv mobile $gopath/golang.org/x/
三. 複製官方例子 basic 到 gopath 中c++
cp -a $gopath/golang.org/x/mobile/example/basic $gopath/
四. 運行編譯命令git
cd $gopath/src/basic ./make.bash
1. 若是出現錯誤 github
go build runtime: android/arm must be bootstrapped using make.bash
說明你尚未配置 go 的交叉編譯環境,就是說你如今的系統沒法編譯出能夠運行在 android/arm cpu 上的二進制文件 *.sogolang
進入你的 ndk 目錄並運行 make-standalone-toolchain.shshell
cd ~/android-ndk && ./build/tools/make-standalone-toolchain.sh Copying prebuilt binaries... Copying sysroot headers and libraries... Copying c++ runtime headers and libraries... Creating package file: /tmp/ndk-oldfeel/arm-linux-androideabi-4.9.tar.bz2 Cleaning up... Done.
若是出現bootstrap
Unable to auto-config arch from toolchain
這是說沒法自動配置 toolchain,須要手動配置.先看看你的ndk支持編譯哪些cpuvim
oldfeel@oldfeel:~/android-ndk$ ls toolchains/ aarch64-linux-android-4.9 mipsel-linux-android-4.8 aarch64-linux-android-clang3.4 mipsel-linux-android-4.9 aarch64-linux-android-clang3.5 mipsel-linux-android-clang3.4 arm-linux-androideabi-4.6 mipsel-linux-android-clang3.5 arm-linux-androideabi-4.8 renderscript arm-linux-androideabi-4.9 x86-4.6 arm-linux-androideabi-clang3.4 x86-4.8 arm-linux-androideabi-clang3.5 x86-4.9 llvm-3.4 x86_64-4.9 llvm-3.5 x86_64-clang3.4 mips64el-linux-android-4.9 x86_64-clang3.5 mips64el-linux-android-clang3.4 x86-clang3.4 mips64el-linux-android-clang3.5 x86-clang3.5 mipsel-linux-android-4.6
編輯 make-standalone-toolchain.sh,找到並修改 TOOLCHAIN_NAME= 爲bash
vim build/tools/make-standalone-toolchain.sh
TOOLCHAIN_NAME=arm-linux-androideabi-4.9
從新執行
./build/tools/make-standalone-toolchain.sh --platform=android-14 Copying prebuilt binaries... Copying sysroot headers and libraries... Copying c++ runtime headers and libraries... Creating package file: /tmp/ndk-oldfeel/arm-linux-androideabi-4.9.tar.bz2 Cleaning up... Done.
解壓 /tmp/ndk-oldfeel/arm-linux-androideabi-4.9.tar.bz2 (你的多是別的名字,上面的運行結果裏有顯示)並將裏面的全部文件 arm-linux-androideabi-4.9/* 移動到 ndk 目錄中
mv arm-linux-androideabi-4.9/* ~/android-ndk/
這時候就能夠到 go/src 下配置 go 的交叉編譯環境(好比個人 go 源碼是放在 ~/go 中的)
注意:修改第二行命令中的 ~/android-ndk 爲本身的 ndk 目錄
cd ~/go/src CC_FOR_TARGET=~/android-ndk/bin/arm-linux-androideabi-gcc GOOS=android GOARCH=arm GOARM=7 CGO_ENABLED=1 ./make.bash
最後出現
--- Installed Go for android/arm in /home/oldfeel/go Installed commands in /home/oldfeel/go/bin
說明配置成功,再次執行 make.bash
cd $gopath/src/basic ./make.bash
若是出現
./make.bash: 行 16: ndk-build: 未找到命令
說明沒有把 ndk 目錄放入環境變量中,另外還須要配置 ANDROID_HOME=sdk.dir
vim ~/.profile
在最下面添加
export ANDROID_HOME=$HOME/android-sdk export PATH=$PATH:$HOME/android-ndk
刷新環境變量(該刷新只對當前終端有效,若想對全部終端有效請重啓電腦)
source ~/.profile
再次執行 make.bash 應該就成功了吧
cd $gopath/src/basic ./make.bash