docker版本 | 软件名称 | 软件版本 | 用户角色 |
---|---|---|---|
23.0.3 | NDK Docker 镜像 | 21e | root |
附件目录
-
ZxamNetLibs-master.zip
-
Dockerfile
FROM ubuntu:18.04
MAINTAINER someone
ARG DEBIAN_FRONTEND=noninteractive
RUN sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list
RUN apt-get update \
&& apt-get -qq install build-essential \
&& apt-get -qq install git
COPY android-ndk-r21e-linux.zip /home
RUN cd /home \
&& apt-get -qq install unzip \
&& unzip android-ndk-r21e-linux.zip \
&& rm -rf android-ndk-r21e-linux.zip
ENV NDK_STANDALONE_TOOLCHAIN="/home/android-ndk-r21e"
COPY cmake-3.12.2-Linux-x86_64.tar.gz /home
RUN cd /home \
&& tar -zxvf cmake-3.12.2-Linux-x86_64.tar.gz \
&& rm -rf cmake-3.12.2-Linux-x86_64.tar.gz \
&& mv cmake-3.12.2-Linux-x86_64 cmake-3.12.2 \
&& ln -sf /home/cmake-3.12.2/bin/* /usr/bin
构建docker镜像
创建目录并上传相应文件至/home/ndk21
目录
mkdir -p ${HOME}/ndk21/src && cd ${HOME}/ndk21
上传需要编译的osip2、exosip2源文件至/home/ndk21/src
目录
目录结构
-rw-rw-r-- 1 chezi008 chezi008 1.2G 1月 30 10:09 android-ndk-r21e-linux.zip
-rw-rw-r-- 1 chezi008 chezi008 34M 1月 30 10:06 cmake-3.12.2-Linux-x86_64.tar.gz
-rw-rw-r-- 1 chezi008 chezi008 917 1月 30 10:06 Dockerfile
drwxrwxr-x 3 chezi008 chezi008 4.0K 1月 30 10:18 docksrc
构建docker镜像
docker build -f Dockerfile --network=host -t ndk:21e .
运行docker容器
docker run --network=host -v ${HOME}/ndk21/src:/home/android -it ndk:21e
设置环境变量
vi ~/.bashrc
export ANDROID_NDK=/home/android-toolchain/android-ndk-r21e
export PATH=$ANDROID_NDK:$PATH
export PATH=$ANDROID_NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin:$PATH
安装一些库
apt install autoconf pkg-config vim
可能会不生效,执行以下命令令其生效
aclocal
automake
autoconf
配置软连接
ln /usr/bin/aclocal /usr/bin/aclocal-1.16
ln /usr/bin/automake /usr/bin/automake-1.16
编译osip2
编译osip导入环境变量
export NDK=/home/android-ndk-r21e
export TOOLCHAIN=$NDK/toolchains/llvm/prebuilt/linux-x86_64
# aarch64/armv7a/x86_64
#export TARGET=armv7a-linux-androideabi
#export TARGET=x86_64-linux-android
export TARGET=aarch64-linux-android
export API=21
export AR=$TOOLCHAIN/bin/$TARGET-ar
export AS=$TOOLCHAIN/bin/$TARGET-as
export CC=$TOOLCHAIN/bin/$TARGET$API-clang
export CXX=$TOOLCHAIN/bin/$TARGET$API-clang++
export LD=$TOOLCHAIN/bin/$TARGET-ld
export RANLIB=$TOOLCHAIN/bin/$TARGET-ranlib
export STRIP=$TOOLCHAIN/bin/$TARGET-strip
export CFLAGS="--sysroot=$TOOLCHAIN/sysroot -DHAVE_TIME_H -DHAVE_FCNTL_H -DHAVE_SYS_SELECT_H -fPIC -DOSIP_MT -DENABLE_TRACE -I$TOOLCHAIN/sysroot/usr/include"
设置可执行权限
cd /home/android/libosip_src-2.5.3/libosip2-5.3.0 &&chmod +x configure &&chmod +x configure.ac
配置命令
./configure --host=aarch64-linux-android --enable-shared --disable-static --enable-pthread=force --prefix=/home/android/$TARGET
编译命令
make && make install
编译exosip2
导入环境变量
export OSIP_ROOT=/home/android/$TARGET
export OSIP_CFLAGS="$OSI-IP_ROOT/include "
export OSIP_LIBS="$OSIP_ROOT/lib/libosip2.so $OSIP_ROOT/lib/libosipparser2.so"
设置可执行权限
cd /home/android/libosip_src-2.5.3/libexosip2-5.3.0 &&chmod +x configure &&chmod +x configure.ac
配置命令
./configure --host=aarch64-linux-android --enable-pthread=force --disable-static --enable-shared PKG_CONFIG_PATH=$OSIP_ROOT/lib/pkgconfig --disable-openssl --prefix=$OSIP_ROOT
编译命令
make && make install