libsodium,libvpx编译为android库

所有的操作以ubuntu环境为例

1.NDK环境设置

1.配置系统环境变量

sudo vim /etc/profile

命令。在文件末尾添加如下内容并保存退出:

export NDK_HOME=ndk的路径
export PATH=$PATH:$NDK_HOME

如下图:
在这里插入图片描述
2.继续执行以下命令:

source  /etc/profile

3.最后继续执行

ndk-build -v

命令 ,出现以下信息说明ndk配置成功
在这里插入图片描述

交叉编译libsodium

1.下载libsodium源码:
https://download.csdn.net/download/weixin_42713739/11632078
2.执行:./autogen.sh
3.执行:./dist-build/android-armv7-a.sh

说明:执行2和3的过程中,可能会报缺少什么库之类的错误。apt安装就行:apt-get install 库名
如果报错:You should probably set ANDROID_NDK_HOME to the directory containing NDK 路径没有设置或设置错误。上面有详细配置NDK路径说明。

4.建立link
#arm
ln -s libsodium-android-armv6 libsodium-android-armeabi
ln -s android-toolchain-armv6 android-toolchain-armeabi
#arm7
ln -s libsodium-android-armv7-a libsodium-android-armeabi-v7a
ln -s android-toolchain-armv7-a android-toolchain-armeabi-v7a

编译完成在android-toolchain-armv7-a目录下可以找到对应的头文件和库文件。

交叉编译libvpx

1.用make-standalone-toolchain.sh生成Android NDK的交叉编译链

  1. 下载Android NDK,我们选择版本android-ndk-r10e

  2. 把android-ndk-r10e解压出来。

  3. 进入到android-ndk-r10e目录,执行

     ./build/tools/make-standalone-toolchain.sh --platform=android-21 --toolchain=arm-linux-androideabi-4.8 --install-dir=/home/username/android_ndk_toolchain
    
  4. android_ndk_toolchain 就是生成出来的独立的Android NDK的交叉编译链,用android_ndk_toolchain编译出来的程序可以动态加载Android NDK里的动态库。

配置执行

./configure --target=armv7-android-gcc --sdk-path=/home/android_ndk_toolchain --prefix=/usr/local/android/  --disable-examples  --disable-install-docs --disable-unit-tests --extra-cflags="-mfloat-abi=softfp -mfpu=neon " --disable-debug  --disable-debug-libs  --disable-shared --enable-static 
 make
 make install

编译成功。

libvpx编译报错

1.vpx_ports/arm_cpudetect.c:95:10: fatal error: ‘cpu-features.h’ file not found

解决办法:

				#for adding cpufeatures
				LOCAL_WHOLE_STATIC_LIBRARIES += cpufeatures
				ifeq ($(TARGET_ARCH_ABI),armeabi-v7a)
					LOCAL_CFLAGS := -DHAVE_NEON=1
				endif
				$(call import-module, android/cpufeatures)

添加以上代码到build/make/Android.mk文件最后。

2.vpx_ports/arm_cpudetect.c:95:10: error: ‘cpu-features.h’ file not found with include; use “quotes” instead

解决办法:

找到cpu-features.h和cpu-features.c放到arm_cpudetect.c的同一级目录。将<cpu-features.h>改为"cpu-features.h"

3.arm_neon.h:28:2: error: “NEON support not enabled”

4.rm_neon.h:48:24: error: ‘neon_vector_type’ attribute is not supported for this target

3和4错误是因为./configure的时候没有加:–extra-cflags="-mfloat-abi=softfp -mfpu=neon "导致的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值