错误记录编译 ijkplayer 报错 (fatal error: ijksoundtouch/ijksoundtouch_wrap.h: No such file or directory )
Posted 韩曙亮
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了错误记录编译 ijkplayer 报错 (fatal error: ijksoundtouch/ijksoundtouch_wrap.h: No such file or directory )相关的知识,希望对你有一定的参考价值。
文章目录
参考 https://github.com/bilibili/ijkplayer 项目的编译过程 ;
一、报错信息
在编译完 ffmpeg 之后 , 执行
./compile-ijk.sh all
命令 , 编译 ijkplayer ;
这也是最后一条命令 ;
执行后报错 :
root@octopus:~/ijkplayer/ijkplayer-android/android# ./compile-ijk.sh all
profiler build: NO
[armeabi-v7a] Compile thumb : ijkplayer <= ff_ffplay.c
[armeabi-v7a] Compile thumb : ijkplayer <= ijkplayer.c
[armeabi-v7a] Compile thumb : ijkplayer <= ffpipeline_ffplay.c
[armeabi-v7a] Compile thumb : ijkplayer <= ffpipenode_ffplay_vdec.c
[armeabi-v7a] Compile thumb : ijkplayer <= ffmpeg_api_jni.c
/root/ijkplayer/ijkplayer-android/android/ijkplayer/ijkplayer-armv7a/src/main/jni/ijkmedia/ijkplayer/ff_ffplay.c:78:46: fatal error: ijksoundtouch/ijksoundtouch_wrap.h: No such file or directory
#include "ijksoundtouch/ijksoundtouch_wrap.h"
^
compilation terminated.
make: *** [/root/ijkplayer/ijkplayer-android/android/ijkplayer/ijkplayer-armv7a/src/main/obj/local/armeabi-v7a/objs/ijkplayer/ff_ffplay.o] Error 1
make: *** Waiting for unfinished jobs....
/root/ijkplayer/ijkplayer-android/android
profiler build: NO
搜索整个目录 , 确实没有 “ijksoundtouch/ijksoundtouch_wrap.h” 文件 ;
二、解决方案
在根目录下 , 有一个 init-android-soundtouch.sh 脚本 ,
执行该 init-android-soundtouch.sh 脚本 , 就可以自动下载并安装 soundtouch ;
在 ijkplayer-android 目录中 , 执行
./init-android-libyuv.sh
命令 , 下载 libyuv 依赖库 , 之后编译 ijkplayer 需要用到 ;
执行过程 :
root@octopus:~/ijkplayer/ijkplayer-android# ./init-android-libyuv.sh
== pull libyuv base ==
正克隆到 'extra/libyuv'...
remote: Enumerating objects: 12767, done.
remote: Total 12767 (delta 0), reused 0 (delta 0), pack-reused 12767
接收对象中: 100% (12767/12767), 2.60 MiB | 839.00 KiB/s, 完成.
处理 delta 中: 100% (10540/10540), 完成.
== pull libyuv fork ==
正克隆到 'ijkmedia/ijkyuv'...
对象计数中: 12767, 完成.
Delta compression using up to 4 threads.
压缩对象中: 100% (2210/2210), 完成.
写入对象中: 100% (12767/12767), 完成.
Total 12767 (delta 10540), reused 12767 (delta 10540)
分支 'ijk-r0.2.1-dev' 设置为跟踪来自 'origin' 的远程分支 'ijk-r0.2.1-dev'。
切换到一个新分支 'ijk-r0.2.1-dev'
/root/ijkplayer/ijkplayer-android
root@octopus:~/ijkplayer/ijkplayer-android#
执行完毕后 , 在 ijkplayer-android/ijkmedia 目录中就可以看到 ijksoundtouch 目录 ;
再次执行 , 就不会报上述错误 ;
以上是关于错误记录编译 ijkplayer 报错 (fatal error: ijksoundtouch/ijksoundtouch_wrap.h: No such file or directory )的主要内容,如果未能解决你的问题,请参考以下文章
错误记录编译 Android 版本的 ijkplayer 报错 ( You must define ANDROID_NDK before starting. | 下载指定版本 NDK )
错误记录编译 Android 版本的 ijkplayer 报错 ( ./init-android.sh: 第 37 行: cd: android/contrib/: 没有那个文件或目录 )
错误记录Android 应用导入 ijkplayer 报错 ( uses-sdk:minSdkVersion 19 cannot be smaller than version 21 decl )
错误记录Ubuntu 安装软件报错 ( 下列软件包有未满足的依赖关系:E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。 )
错误记录Android 应用执行报错 ( java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[ )