错误记录编译 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 )

Android 关于编译ijkplayer下的so经验分享

错误记录Ubuntu 安装软件报错 ( 下列软件包有未满足的依赖关系:E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。 )

错误记录Android 应用执行报错 ( java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[ )