菜鸟慢慢踩雷。最近需要编译安卓,需要学习关于编译linux上面跑的程序。
NDK提供一些标准库文件以及工具链。
首先找到关于ndk的文件路径。
没有的话去这里下载。
解压得到的压缩包
pengjiang@pengjiang-VirtualBox:~/android-toolchain$ mkdir ndk
pengjiang@pengjiang-VirtualBox:~/android-toolchain$ unzip -o -d ndk android-ndk-r19c-linux-x86_64.zip
# 声明NDK目录
pengjiang@pengjiang-VirtualBox:~/android-toolchain/ndk/android-ndk-r19c$ export NDK=/home/pengjiang/android-toolchain/ndk/android-ndk-r19c
编译安装目录
pengjiang@pengjiang-VirtualBox:~/android-toolchain/ndk/android-ndk-r19c$ $NDK/build/tools/make-standalone-toolchain.sh --platform=android-21 --install-dir=/home/pengjiang/android-toolchain/install-dir --force >>~/ndk-build.log
由于--install-dir
之前安装失败了。因此我需要使用强制--force
安装命令。
将信息保存在ndk-build.log
。以便以后查看。
HOST_OS=linux
HOST_EXE=
HOST_ARCH=x86_64
HOST_TAG=linux-x86_64
HOST_NUM_CPUS=1
BUILD_NUM_CPUS=2
Auto-config: --arch=arm
Toolchain installed to /home/pengjiang/android-toolchain/install-dir.
声明编译工具链的路径
pengjiang@pengjiang-VirtualBox:~/android-toolchain/install-dir$ find . -name "*gcc"
./bin/arm-linux-androideabi-gcc
./lib/gcc
export PATH=/home/pengjiang/android-toolchain/install-dir/bin:$PATH
# 位于家目录测试
pengjiang@pengjiang-VirtualBox:~$ arm-linux-androideabi-gcc --version
Android (5058415 based on r339409) clang version 8.0.2 (https://android.googlesource.com/toolchain/clang ) (https://android.googlesource.com/toolchain/llvm ) (based on LLVM 8.0.2svn)
Target: armv7a-unknown-linux-android21
Thread model: posix
InstalledDir: /home/pengjiang/android-toolchain/install-dir/bin
能看安装目录表示已经成功了。
找到安装目录的sysroot
pengjiang@pengjiang-VirtualBox:~/workshare/C2_interface/GPIO$ cd /home/pengjiang/android-toolchain/install-dir
pengjiang@pengjiang-VirtualBox:~/android-toolchain/install-dir$ find . -name sysroot
./sysroot
pengjiang@pengjiang-VirtualBox:~/android-toolchain/install-dir/sysroot$ export SYSROOT=/home/pengjiang/android-toolchain/install-dir/sysroot
编译hello world
pengjiang@pengjiang-VirtualBox:~/workshare/C2_interface/GPIO$ arm-linux-androideabi-gcc --sysroot=$SYSROOT hello.c -o hello.out
将hello.out
无论使用什么方法。移动到开发板上面就可以运行了。
增补
由于经常修改了PATH
。
添加一个PATH的默认路径在这里,以备不时之需
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin