文章目录
一、报错信息二、解决方案参考 /bilibili/ijkplayer 项目的编译过程 ;
一、报错信息
在编译完 ffmpeg 之后 , 执行
./compile-ijk.sh all
命令 , 编译 ijkplayer ;
这也是最后一条命令 ;
执行后报错 :
root@octopus:~/ijkplayer/ijkplayer-android/android# ./compile-ijk.sh allprofiler 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 1make: *** Waiting for unfinished jobs..../root/ijkplayer/ijkplayer-android/androidprofiler 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-androidroot@octopus:~/ijkplayer/ijkplayer-android#
执行完毕后 , 在 ijkplayer-android/ijkmedia 目录中就可以看到 ijksoundtouch 目录 ;
再次执行 , 就不会报上述错误 ;