WSL2编译ijkplayer

Windows 11 专业版 22H2 22621.819
应用商店安装 Ubuntu 22.04.1 LTS
控制面板——程序和功能——启用或关闭Windows功能——适用于 Linux的Windows子系统
Error: 0x800701bc WSL 2 ???
在这里插入图片描述

升级WSL https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
换源
https://mirror.tuna.tsinghua.edu.cn/help/ubuntu/
sudo apt update
sudo apt-get install git yasm make
https://github.com/android/ndk/wiki/Unsupported-Downloads
wget https://dl.google.com/android/repository/android-ndk-r14b-linux-x86_64.zip
sudo apt install unzip
unzip android-ndk-r14b-linux-x86_64.zip
http://tools.android-studio.org/index.php/sdk/
wget http://dl.google.com/android/android-sdk_r24.4.1-linux.tgz
tar -zxvf android-sdk_r24.4.1-linux.tgz
cd android-sdk-linux/tools/
./android update sdk --no-ui

https://blog.youkuaiyun.com/beishanyingluo/article/details/97675724
版本是jdk-8u221-linux-x64.tar.gz
链接:https://pan.baidu.com/s/1GZnUwB3nraObgperKlmBCg
提取码:17xx
tar -zxvf jdk-8u221-linux-x64.tar.gz
sudo nano /etc/profile

#配置java环境
export JAVA_HOME=/home/xuefei/jdk1.8.0_221
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=.:${JAVA_HOME}/bin:$PATH

#配置SDK的环境
export PLATFORM_TOOLS=/home/xuefei/android-sdk-linux/platform-tools
export PATH=$PATH:$PLATFORM_TOOLS

#配置NDK的环境
export ANDROID_NDK=/home/xuefei/android-ndk-r14b
export PATH=$PATH:$ANDROID_NDK

ctrl+x y
source /etc/profile

sudo dpkg-reconfigure dash
No

git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-android
cd ijkplayer-android
git checkout -B k0.8.8

cd config // 进入config目录
rm module.sh // 删除module.sh脚本
ln -s module-default.sh module.sh // 指定默认脚本软连接到module.sh
source module.sh // 重新执行刚修改的文件初始化,使之立即生效

nano module-default.sh
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-linux-perf" 
#支持rtsp
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-protocol=rtp"
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-demuxer=rtsp"

./init-android.sh

./init-android-openssl.sh

编译openssl
cd …
cd android/contrib
./compile-openssl.sh clean
./compile-openssl.sh armv7a

编译ffmpeg
./compile-ffmpeg.sh clean
./compile-ffmpeg.sh armv7a

编译ijkplayer
cd …
./compile-ijk.sh clean
./compile-ijk.sh armv7a

问题
BFD: libncurses.so.5: cannot open shared object file: No such file or directory
sudo apt install libncurses5

ERROR: Failed to create toolchain
$ANDROID_NDK/build/tools/make-standalone-toolchain.sh文件

#修改前的
#run python `dirname $0`/make_standalone_toolchain.py \
#    --arch $ARCH $PLATFORM_ARG --stl $STL $INSTALL_ARG $FORCE_ARG
    
#修改后的
python3 `dirname $0`/make_standalone_toolchain.py \
    --arch $ARCH $PLATFORM_ARG --stl $STL $INSTALL_ARG $FORCE_ARG

Error: Unknown option “–disable-ffserver”
Unknown option “–disable-vda”.

config/module-default.sh 注释如下两行

#export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-vda"
#export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-ffserver"

在这里插入图片描述
参考链接
https://www.cnblogs.com/zuojie/p/16457739.html
https://www.jianshu.com/p/10b1f3d7957e
https://blog.youkuaiyun.com/daydayupchen/article/details/126241746
https://www.jianshu.com/p/4991c8c0b5d8
https://blog.youkuaiyun.com/beishanyingluo/article/details/97675724

### WSL2 编译过程卡死的原因分析与解决方案 WSL2(Windows Subsystem for Linux 2)作为 Windows 上运行 Linux 的一种高效方式,其性能和兼容性得到了显著提升。然而,在某些情况下,编译过程可能会出现卡死现象。以下是可能原因及其对应的解决方法: #### 可能原因一:网络连接不稳定 如果编译过程中涉及下载依赖项或更新包列表,则网络问题可能导致进程挂起。 - **解决方法** 确保网络稳定并尝试重新执行命令。可以临时切换到更稳定的网络环境来验证是否为网络引起的问题[^3]。 #### 可能原因二:磁盘 I/O 性能瓶颈 WSL2 使用虚拟化技术模拟硬件设备,当大量读写操作发生时,尤其是访问位于 NTFS 文件系统的目录时,可能出现性能下降甚至卡顿的情况。 - **优化措施** - 将源码及相关工作文件存储于 `/mnt/wslg` 或者其他专门分配给 WSL 的 ext4 格式的分区中而非直接映射至 C:\ 驱动器路径下。 - 调整 `wsl.conf` 设置减少不必要的同步开销: ```bash [automount] enabled = true options = "metadata" [mount] c:/ = none bind-cwd rw,noatime,nofollow,uid=1000,gid=1000,umask=22,fmask=117 ``` #### 可能原因三:资源不足 类似于 VMware 中遇到的操作系统卡死情况,内存过载也可能影响 WSL2 正常运作。 - **缓解策略** 通过修改 `.wslconfig` 来增加分配给 WSL 实例的 RAM 和 CPU 数量: ```ini [wsl2] memory=8GB # 设定最大可用内存大小,默认单位 GB processors=4 # 分配核心数 swap=2GB # 启用交换空间以应对突发需求 localhostForwarding=true # 开启本地端口转发功能以便调试服务程序 ``` 重启 WSL (`wsl --shutdown`) 让更改生效后再试一次构建流程[^4]。 #### 可能原因四:特定工具链版本冲突 不同软件组件间可能存在版本不匹配的现象,比如 GCC 版本较旧无法满足现代库的要求或者 Python 环境变量污染等问题都会引发异常行为。 - **排查手段** 确认所使用的开发套件均为最新稳定版;对于像 ORB-SLAM 这样的复杂工程尤其要注意第三方依赖关系表单里指定的确切标签号克隆仓库分支而不是 master/main 头部提交记录[^1]。 --- ### 示例代码片段展示如何调整 wsl.conf 参数改善性能表现 编辑 ~/.profile 添加如下内容启用高性能模式: ```bash export MAKEFLAGS="-j$(nproc)" alias ls='ls --color=auto' alias ll='ls -lhF' ``` 同时创建全局范围内的配置文件 /etc/wsl.conf 如果尚未存在的话: ```bash sudo nano /etc/wsl.conf ``` 填入上述提到过的 automount 和 mount 配置节段保存退出即可应用新设定。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

地狱为王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值