编译HarmonyOS 鸿蒙Next_ijkplayer,报unexpected EOF
编译HarmonyOS 鸿蒙Next_ijkplayer,报unexpected EOF
- 在使用ohos_ijkplayer时,发现它不支持armeabi-v7a,于是根据文档自己编译了第三方库,构建的时候一直报:
FAILED: C:/workspace/DevecostudioProjects/ohos_ijkplayer/ijkplayer/build/default/intermediates/cmake/default/obj/arm64-v8a/libijksdl.so
C:\WINDOWS\system32\cmd.exe /C "cd . && C:\PROGRA~1\Huawei\DEVECO~1\sdk\default\OPENHA~1\native\llvm\bin\CLANG_~1.EXE --target=aarch64-linux-ohos --gcc-toolchain="C:/Program Files/Huawei/DevEco Studio/sdk/default/openharmony/native/llvm" --sysroot="C:/Program Files/Huawei/DevEco Studio/sdk/default/openharmony/native/sysroot" -fPIC -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -fno-addrsig -Wa,--noexecstack -Wformat -Werror=format-security -s -D__MUSL__ -Wno-int-conversion -Wl,-Bsymbolic -O2 -DNDEBUG -rtlib=compiler-rt -fuse-ld=lld -Wl,--build-id=sha1 -Wl,--warn-shared-textrel -Wl,--fatal-warnings -lunwind -Wl,--no-undefined -Qunused-arguments -Wl,-z,noexecstack -shared -Wl,-soname,libijksdl.so -o C:\workspace\DevecostudioProjects\ohos_ijkplayer\ijkplayer\build\default\intermediates\cmake\default\obj\arm64-v8a\libijksdl.so ijksdl/CMakeFiles/ijksdl.dir/ijksdl_aout.c.o ijksdl/CMakeFiles/ijksdl.dir/ijksdl_audio.c.o ijksdl/CMakeFiles/ijksdl.dir/ijksdl_egl.c.o ijksdl/CMakeFiles/ijksdl.dir/ijksdl_error.c.o ijksdl/CMakeFiles/ijksdl.dir/ijksdl_mutex.c.o ijksdl/CMakeFiles/ijksdl.dir/ijksdl_stdinc.c.o ijksdl/CMakeFiles/ijksdl.dir/ijksdl_thread.c.o ijksdl/CMakeFiles/ijksdl.dir/ijksdl_timer.c.o ijksdl/CMakeFiles/ijksdl.dir/ijksdl_vout.c.o ijksdl/CMakeFiles/ijksdl.dir/ijksdl_extra_log.c.o ijksdl/CMakeFiles/ijksdl.dir/video/gles2/color.c.o ijksdl/CMakeFiles/ijksdl.dir/video/gles2/common.c.o ijksdl/CMakeFiles/ijksdl.dir/video/gles2/renderer.c.o ijksdl/CMakeFiles/ijksdl.dir/video/gles2/renderer_rgb.c.o ijksdl/CMakeFiles/ijksdl.dir/video/gles2/renderer_yuv420p.c.o ijksdl/CMakeFiles/ijksdl.dir/video/gles2/renderer_yuv444p10le.c.o ijksdl/CMakeFiles/ijksdl.dir/video/gles2/shader.c.o ijksdl/CMakeFiles/ijksdl.dir/video/gles2/fsh/rgb.fsh.c.o ijksdl/CMakeFiles/ijksdl.dir/video/gles2/fsh/yuv420p.fsh.c.o ijksdl/CMakeFiles/ijksdl.dir/video/gles2/fsh/yuv444p10le.fsh.c.o ijksdl/CMakeFiles/ijksdl.dir/video/gles2/vsh/mvp.vsh.c.o ijksdl/CMakeFiles/ijksdl.dir/video/ijksdl_vout_android_nativewindow.c.o ijksdl/CMakeFiles/ijksdl.dir/video/ijksdl_vout_android_surface.c.o ijksdl/CMakeFiles/ijksdl.dir/ffmpeg/ijksdl_vout_overlay_ffmpeg.c.o ijksdl/CMakeFiles/ijksdl.dir/ffmpeg/abi_all/image_convert.c.o ijksdl/CMakeFiles/ijksdl.dir/audio/ijksdl_aout_android_opensles.c.o ijksdl/CMakeFiles/ijksdl.dir/dummy/ijksdl_vout_dummy.c.o ijksdl/CMakeFiles/ijksdl.dir/__/utils/ohoslog/ohos_log.cpp.o -LC:/workspace/DevecostudioProjects/ohos_ijkplayer/ijkplayer/src/main/cpp/ijksdl/../third_party/ffmpeg/ffmpeg/arm64-v8a/lib -LC:/workspace/DevecostudioProjects/ohos_ijkplayer/ijkplayer/src/main/cpp/ijksdl/../third_party/openssl/arm64-v8a/lib -LC:/workspace/DevecostudioProjects/ohos_ijkplayer/ijkplayer/src/main/cpp/ijksdl/../third_party/soundtouch/arm64-v8a/lib -LC:/workspace/DevecostudioProjects/ohos_ijkplayer/ijkplayer/src/main/cpp/ijksdl/../third_party/yuv/arm64-v8a/lib -LC:/workspace/DevecostudioProjects/ohos_ijkplayer/ijkplayer/src/main/cpp/ijksdl/../third_party/openh264/arm64-v8a/lib C:/workspace/DevecostudioProjects/ohos_ijkplayer/ijkplayer/src/main/cpp/ijksdl/../third_party/yuv/arm64-v8a/lib/libyuv.a -lEGL -lGLESv3 -lhilog_ndk.z -lnative_window -lz -lavcodec -lavfilter -lavformat -lavutil -lswresample -lswscale -lavdevice -lcrypto -lssl -lohaudio -lopenh264 -lm && cd ."
ld.lld: error: C:/workspace/DevecostudioProjects/ohos_ijkplayer/ijkplayer/src/main/cpp/ijksdl/../third_party/openssl/arm64-v8a/lib/libcrypto.so:1: unexpected EOF
>>> libcrypto.so.1.1
编译openssl时是根据官方推荐的方法编译的,编译过程中也没有报错。但是生成的libcrypto.so
就是无法编译通过。
更多关于编译HarmonyOS 鸿蒙Next_ijkplayer,报unexpected EOF的实战教程也可以访问 https://www.itying.com/category-93-b0.html
4 回复
您好,内部正在分析中,有结论通知您
更多关于编译HarmonyOS 鸿蒙Next_ijkplayer,报unexpected EOF的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
-
终于知道了,原来编译后生成的.so和.so.1.1这样的文件是不需要的。直接删除就可以了,只需要.h和.c或者.cpp
-
发一个链接,也是在这里链接里找到灵感的。https://blog.csdn.net/m0_46587379/article/details/142171836。把他做好的项目下载下来。看看他的third_party中有什么。
厉害了,大佬,
在编译HarmonyOS鸿蒙Next_ijkplayer时,遇到“unexpected EOF”错误,通常与文件下载不完整或网络中断有关。可能的原因包括:
- 网络不稳定:下载依赖库或源码时,网络中断导致文件不完整。
- 服务器问题:源服务器中断连接,导致文件下载失败。
- 缓存文件损坏:本地缓存文件损坏或不完整。
- 编译环境配置错误:环境变量或路径设置不当,导致文件读取失败。
解决方法:
- 清理缓存并重新下载:删除相关缓存文件,重新拉取依赖。
- 检查网络连接:确保网络稳定,必要时更换网络环境。
- 验证文件完整性:手动检查下载文件的完整性。
- 更新编译工具链:确保使用的编译工具链与HarmonyOS版本兼容。