符合中小企业对网站设计、功能常规化式的企业展示型网站建设
本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...
商城网站建设因基本功能的需求不同费用上面也有很大的差别...
手机微信网站开发、微信官网、微信商城网站...
本篇内容主要讲解“C++怎么编译Android动态库”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++怎么编译Android动态库”吧!
霞山网站建设公司成都创新互联,霞山网站设计制作,有大型网站制作公司丰富经验。已为霞山上千家提供企业网站建设服务。企业网站搭建\成都外贸网站制作要多少钱,请找那个售后服务好的霞山做网站的公司定做!Linux 系统:
ubuntu18.04
NDK
ndk/android-ndk-r21b
FFmpeg
ffmpeg-4.3.2
ffmpeg 下载后的文件名
ffmpeg_4.3.2.orig.tar.xz
解压方式
tar xvJf ffmpeg_4.3.2.orig.tar.xz
在 root 权限下操作
新建文件 build_android.sh
#!/bin/bash# ndk路径NDK=/home/build/workspace/hqq/vision/vision-app/ndk/android-ndk-r21b# 编译工具链目录,ndk17版本以上用的是clang,以下是gccTOOLCHAIN=$NDK/toolchains/llvm/prebuilt/linux-x86_64# 版本号API=21# 交叉编译树的根目录(查找相应头文件和库用)SYSROOT="${TOOLCHAIN}/sysroot"# 定义执行configure的shell方法function build_android() { ./configure \ --prefix=$PREFIX \ --enable-shared \ --disable-static \ --enable-jni \ --enable-gpl \ --enable-small \ --disable-doc \ --disable-programs \ --disable-symver \ --target-os=android \ --arch=$ARCH \ --cpu=$CPU \ --cc=$CC \ --cxx=$CXX \ --enable-cross-compile \ --cross-prefix=$CROSS_COMPILE \ --sysroot=$SYSROOT \ --extra-cflags="-Os -fpic $OPTIMIZE_CFLAGS" \ --extra-ldflags="" \ --disable-asm \ $COMMON_FF_CFG_FLAGS make clean make -j16 make install}# armOUTPUT_FOLDER=armARCH=armCPU=armv7-aTOOL_CPU_NAME=armv7aTOOL_PREFIX=$TOOLCHAIN/bin/${TOOL_CPU_NAME}-linux-androideabiOPTIMIZE_CFLAGS="-marm -march=$CPU"PREFIX=${PWD}/android/$OUTPUT_FOLDERCROSS_COMPILE=$TOOLCHAIN/bin/arm-linux-androideabi-CC=${TOOL_PREFIX}${API}-clangCXX=${TOOL_PREFIX}${API}-clang++build_android# arm64,这个指令集最低支持api21OUTPUT_FOLDER=arm64-v8aARCH=aarch64CPU=armv8-aTOOL_CPU_NAME=aarch64TOOL_PREFIX=$TOOLCHAIN/bin/${TOOL_CPU_NAME}-linux-androidOPTIMIZE_CFLAGS="-march=$CPU"PREFIX=${PWD}/android/$OUTPUT_FOLDERCROSS_COMPILE=$TOOLCHAIN/bin/aarch64-linux-android-CC=${TOOL_PREFIX}${API}-clangCXX=${TOOL_PREFIX}${API}-clang++build_android# x86OUTPUT_FOLDER=x86ARCH=x86CPU=x86TOOL_CPU_NAME=i686TOOL_PREFIX=$TOOLCHAIN/bin/${TOOL_CPU_NAME}-linux-androidOPTIMIZE_CFLAGS="-march=i686 -mtune=intel -mssse3 -mfpmath=sse -m32"PREFIX=${PWD}/android/$OUTPUT_FOLDERCROSS_COMPILE=$TOOLCHAIN/bin/i686-linux-android-CC=${TOOL_PREFIX}${API}-clangCXX=${TOOL_PREFIX}${API}-clang++build_android# x86_64,这个指令集最低支持api21OUTPUT_FOLDER=x86_64ARCH=x86_64CPU=x86-64TOOL_CPU_NAME=x86_64TOOL_PREFIX=$TOOLCHAIN/bin/${TOOL_CPU_NAME}-linux-androidOPTIMIZE_CFLAGS="-march=$CPU -mtune=intel -msse4.2 -mpopcnt -m64"# 输出目录PREFIX=${PWD}/android/$OUTPUT_FOLDERCROSS_COMPILE=$TOOLCHAIN/bin/x86_64-linux-android-# so的输出目录, --libdir=$LIB_DIR 可以不用指定,默认会生成在$PREFIX/lib目录中#LIB_DIR="${PWD}/android/libs/$OUTPUT_FOLDER"# 编译器CC=${TOOL_PREFIX}${API}-clangCXX=${TOOL_PREFIX}${API}-clang++build_android
修改文件权限
chmod 777 build_android.sh
执行 build_android.sh
可编译出 "armeabi-v7a", "arm64-v8a", "x86", "x86_64"
假如编译失败,在打开文件粘贴时
:set ff #查看文件的格式会看到fileformat=dos 或者者 fileformat=unix
:set ff=unix #设置为unix格式
:wq #保存退出
取 .so 库放到 Android 项目中
android_ffmpeg_lib
taxiao213/android_ffmpeg_lib
到此,相信大家对“C++怎么编译Android动态库”有了更深的了解,不妨来实际操作一番吧!这里是创新互联建站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!