ubuntu下交叉编译,android版本的libSDL2_ttf.so动态库

一、需求:

如果您开发的android播放器,使用SDL作为显示视频的工具,想要显示字幕、时间进度,就必须用到libSDL2_ttf了。

 

二、前期工作:

以前在debian系统下,交叉编译了libSDL2.so动态库,传送门《linux下交叉编译android版本的libSDL2.so》。

由于换了电脑,以前的环境没有了,只能重新部署环境,在新的win7系统下,安装虚拟机ubuntu 16.06 64位桌面版。

 

三、从0开始部署环境:

3.1 安装虚拟机 

内载ubuntu系统,具体不详述了,能联网就行;

3.2 下载交叉编译需要的环境

下载ndk
android-ndk-r16b-linux-x86_64.zip
最新稳定版本 (r16b)

下载SDK
android-sdk_r24.4.1-linux.tgz

下载sdl
SDL2-2.0.5.zip

为什么要用2.0.5呢?最新的可不是它!因为官网给的编译教程,是以2.0.5为例的,我尝试过用最新的版本编译,不幸阵亡。。。;哪位大神有时间有毅力,编出来以后可以分享一下哈~

 

下载sdl_ttf
SDL2_ttf-2.0.14.zip

3.3 解压

注:以下均为本人的绝对路径,具体操作,需改为自己环境的路径

unzip /mnt/hgfs/share/android-ndk-r16b-linux-x86_64.zip -d ./

tar zxvf /mnt/hgfs/share/android-sdk_r24.4.1-linux.tgz -C ./

3.4 下载android sdk

cd android-sdk-linux/tools
./android 

随后会弹出下载的对话框,选择相应的sdk和api版本,由于本人的工程代码创建时间比较久了,所以本人选择

sdk 26.0.1 
API 19

根据具体项目选择即可。

 

3.5 设置环境变量

PATH="/tmp/android-ndk-r16b:$PATH"                   # for 'ndk-build'
PATH="/tmp/android-sdk-linux/tools:$PATH"           # for 'android'
PATH="/tmp/android-sdk-linux/platform-tools:$PATH"  # for 'adb'

export  ANDROID_HOME=/tmp/android-sdk-linux/
export  ANDROID_NDK_HOME=/tmp/android-ndk-r16b/

 

四、编译SDL库

参考《 linux下交叉编译android版本的libSDL2.so》,其实就是cd到sdl源码目录,执行以下命令,生成一个test工程

./androidbuild.sh org.libsdl.testttf ../test/testgles.c

如果不需要编译x86版本的库,可以将org.libsdl.testttf/jni/Application.mk,x86去掉,此次不需要
APP_ABI := armeabi armeabi-v7a

五、编译SDL_ttf库

第一步:

在org.libsdl.testttf/jni/src/Android.mk文件中,找到LOCAL_SHARED_LIBRARIES,添加SDL2_ttf,以便生成动态库

LOCAL_SHARED_LIBRARIES := SDL2 SDL2_ttf

第二步:

将解压后的sdl2_ttf源码copy到org.libsdl.testttf的jni目录下
 

cp SDL2_ttf-2.0.14 /tmp/SDL-2.0.5/build/org.libsdl.testttf/jni/SDL2_ttf
cd /tmp/SDL-2.0.5/build/org.libsdl.testttf

第三步:

编译

ndk-build -j$(nproc)

成功以后,在org.libsdl.testttf/libs目录下,生成了libSDL2_ttf.so

将libSDL2_ttf.so copy到工程目录,在CMakeList.txt,参考SDL2的方式,加入库的引用,即可。

 

六 效果演示

字幕在进度条下方

android sdl2_ttf显示字幕
标题

 

可以直接下载编译好的(能不能用不知道啊,我自己手机可以用,有问题欢迎交流):

libsdl2_ttf.so下载页面

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值