window wsl 环境下编译openharmony,HarmonyOS 三方库 FFmpeg

1.wsl 创建

C:\Users\Administrator>wsl --list --online

以下是可安装的有效分发的列表。

使默认分发用 "*" 表示。

使用 'wsl --install -d <Distro>' 安装。

NAME FRIENDLY NAME

  • Ubuntu Ubuntu

Debian Debian GNU/Linux

kali-linux Kali Linux Rolling

Ubuntu-18.04 Ubuntu 18.04 LTS

Ubuntu-20.04 Ubuntu 20.04 LTS

Ubuntu-22.04 Ubuntu 22.04 LTS

Ubuntu-24.04 Ubuntu 24.04 LTS

OracleLinux_7_9 Oracle Linux 7.9

OracleLinux_8_7 Oracle Linux 8.7

OracleLinux_9_1 Oracle Linux 9.1

openSUSE-Leap-15.6 openSUSE Leap 15.6

SUSE-Linux-Enterprise-15-SP6 SUSE Linux Enterprise 15 SP6

openSUSE-Tumbleweed openSUSE Tumbleweed

C:\Users\Administrator>wsl --install -d Ubuntu-24.04

正在安装: 虚拟机平台

已安装 虚拟机平台。

正在安装: 适用于 Linux 的 Windows 子系统

已安装 适用于 Linux 的 Windows 子系统。

正在安装: 适用于 Linux 的 Windows 子系统

已安装 适用于 Linux 的 Windows 子系统。

正在安装: Ubuntu 24.04 LTS

已安装 Ubuntu 24.04 LTS。

请求的操作成功。直到重新启动系统前更改将不会生效。

重启

C:\Users\Administrator>wsl -d Ubuntu-24.04

To run a command as administrator (user "root"), use "sudo <command>".

See "man sudo_root" for details.

zzj@DESKTOP-IMD54IU:/mnt/c/Users/Administrator$exit

(默认安装到C盘,以下操作是将c盘镜像转移到E盘)

C:\Users\Administrator>wsl --export Ubuntu-24.04 E:\wsl\Ubuntu-24.04.tar

C:\Users\Administrator>wsl --unregister Ubuntu-24.04

正在注销。

操作成功完成。

C:\Users\Administrator>wsl --import Ubuntu-24.04 E:\wsl\Ubuntu-24.04 E:\wsl\Ubuntu-24.04.tar

操作成功完成。

C:\Users\Administrator>wsl -l -v

NAME STATE VERSION

* Ubuntu-24.04 Stopped 2

C:\Users\Administrator>wsl --set-default Ubuntu-24.04

操作成功完成。

C:\Users\Administrator>wsl -d Ubuntu-24.04

root@DESKTOP-IMD54IU:/mnt/c/Users/Administrator# su zzj

To run a command as administrator (user "root"), use "sudo <command>".

See "man sudo_root" for details.

zzj@DESKTOP-IMD54IU:/mnt/c/Users/Administrator$ cd /home/zzj/

zzj@DESKTOP-IMD54IU:~$ pwd

/home/zzj

2.下载 ohos-sdk-full

下载地址 https://ci.openharmony.cn/workbench/cicd/dailybuild/dailyList

包名 version-Master_Version-OpenHarmony_5.0.0.39-20240825_020234-ohos-sdk-full.tar.gz

时间选 2024-08-15 2024-09-01

3.安装必须包

zzj@DESKTOP-9H0R2NQ:~$sudo apt update

zzj@DESKTOP-9H0R2NQ:~$sudo apt upgrade

zzj@DESKTOP-9H0R2NQ:~$sudo apt install autoconf

zzj@DESKTOP-9H0R2NQ:~$sudo apt install nasm

zzj@DESKTOP-9H0R2NQ:~$sudo apt install cmake

zzj@DESKTOP-9H0R2NQ:~$sudo apt install gcc

zzj@DESKTOP-9H0R2NQ:~$sudo apt install g++

zzj@DESKTOP-9H0R2NQ:~$sudo apt install pkg-config

zzj@DESKTOP-9H0R2NQ:~$sudo apt install ninja-build

zzj@DESKTOP-9H0R2NQ:~$sudo apt install zip

zzj@DESKTOP-9H0R2NQ:~$sudo apt install librtmp-dev

4.拷贝full sdk 到 ubuntu

zzj@DESKTOP-9H0R2NQ:~$mkdir third_party

zzj@DESKTOP-9H0R2NQ:~$cd third_party

zzj@DESKTOP-9H0R2NQ:~/third_party$ ls

version-Master_Version-OpenHarmony_5.0.0.39-20240825_020234-ohos-sdk-full.tar.gz

zzj@DESKTOP-9H0R2NQ:~/third_party$ tar vxf version-Master_Version-OpenHarmony_5.0.0.39-20240825_020234-ohos-sdk-full.tar.gz

zzj@DESKTOP-9H0R2NQ:~/third_party$ ls -al

total 2609288

drwxr-xr-x 5 zzj zzj 4096 Jul 7 10:23 .

drwxr-x--- 5 zzj zzj 4096 Jul 7 09:58 ..

drwxr-xr-x 3 zzj zzj 4096 Jul 7 10:24 linux

-rw-r--r-- 1 zzj zzj 2671780565 Jul 7 10:15 version-Master_Version-OpenHarmony_5.0.0.39-20240825_020234-ohos-sdk-full.tar.gz

drwxr-xr-x 2 zzj zzj 4096 Aug 25 2024 windows

(只保留linux目录即可)

zzj@DESKTOP-9H0R2NQ:~/third_party$ cd linux/

(只保留native-linux-x64-5.0.0.40-Beta5.zip目录即可)

zzj@DESKTOP-9H0R2NQ:~/third_party$ unzip native-linux-x64-5.0.0.40-Beta5.zip

zzj@DESKTOP-9H0R2NQ:~/third_party/linux$ ls -al

total 1230120

drwxr-xr-x 3 zzj zzj 4096 Jul 7 10:24 .

drwxr-xr-x 5 zzj zzj 4096 Jul 7 10:23 ..

drwxr-xr-x 7 zzj zzj 4096 Jul 7 10:25 native

-rw-r--r-- 1 zzj zzj 910875172 Aug 25 2024 native-linux-x64-5.0.0.40-Beta5.zip

zzj@DESKTOP-9H0R2NQ:~/third_party/linux$ pwd

/home/zzj/third_party/linux

zzj@DESKTOP-9H0R2NQ:~/third_party/linux$ cd ..

5.下载编译工具

zzj@DESKTOP-9H0R2NQ:~/third_party$ git clone https://gitcode.com/openharmony-sig/tpc_c_cplusplus.git

zzj@DESKTOP-9H0R2NQ:~/third_party/tpc_c_cplusplus$ git checkout 033ea77a98b4dd2dd2b72804a54f8428cbe976c5

(切换到5月版本,新版本工具有问题)

zzj@DESKTOP-9H0R2NQ:~/third_party/tpc_c_cplusplus$ cd /home/zzj/third_party/tpc_c_cplusplus/lycium/Buildtools/

zzj@DESKTOP-9H0R2NQ:~/third_party/tpc_c_cplusplus/lycium/Buildtools$ sha512sum -c SHA512SUM

toolchain.tar.gz: OK

zzj@DESKTOP-9H0R2NQ:~/third_party/tpc_c_cplusplus/lycium/Buildtools$ export OHOS_SDK=/home/zzj/third_party/linux

zzj@DESKTOP-9H0R2NQ:~/third_party/tpc_c_cplusplus/lycium/Buildtools$tar -zxvf toolchain.tar.gz

zzj@DESKTOP-9H0R2NQ:~/third_party/tpc_c_cplusplus/lycium/Buildtoolscp toolchain/\* {OHOS_SDK}/native/llvm/bin

zzj@DESKTOP-9H0R2NQ:~/third_party/tpc_c_cplusplus/lycium/Buildtools$ cd /home/zzj/third_party/tpc_c_cplusplus/lycium/

6.修改 FFmpeg的HPKBUILD编译配置项

zzj@DESKTOP-9H0R2NQ:~/third_party/tpc_c_cplusplus/lycium$vim /home/zzj/third_party/tpc_c_cplusplus/thirdparty/FFmpeg/HPKBUILD

depends=("rtmpdump" "openssl_1_0_2u") 改为 depends=()

--enable-librtmp 改为 --disable-librtmp

--enable-openssl 改为 --disable-openssl

(我本身对rtmp openssl 没需求,如果不改,这两个依赖包编译有问题,修改嫌麻烦,直接让他们滚蛋,如需修改好的FFmpeg/HPKBUILD文件可以联系我)

7.开始编译

zzj@DESKTOP-9H0R2NQ:~/third_party/tpc_c_cplusplus/lycium$ ./build.sh FFmpeg

Build OS linux

OHOS_SDK=/home/zzj/third_party/linux

CLANG_VERSION=15.0.4

创建 /home/zzj/third_party/tpc_c_cplusplus/lycium/usr 目录

Start building FFmpeg n6.0!

Downloading FFmpeg-n6.0.tar.gz

FFmpeg-n6.0.tar.gz: OK

Compileing OpenHarmony armeabi-v7a FFmpeg n6.0 libs...

patching file tests/md5.sh

The test must be on an OpenHarmony device!

Compileing OpenHarmony arm64-v8a FFmpeg n6.0 libs...

patching file tests/md5.sh

The test must be on an OpenHarmony device!

Build FFmpeg n6.0 end!

ALL JOBS DONE!!!

编译后include 和 lib位置(include 与 lib 同级,armeabi-v7a 下的为 32位,arm64-v8a下的为64为看自己板子定)

zzj@DESKTOP-9H0R2NQ:~/third_party/tpc_c_cplusplus/lycium/usr/FFmpeg$ ls armeabi-v7a/lib/

libavcodec.a libavdevice.so.60 libavformat.a libavutil.so.58 libswscale.a

libavcodec.so libavdevice.so.60.1.100 libavformat.so libavutil.so.58.2.100 libswscale.so

libavcodec.so.60 libavfilter.a libavformat.so.60 libswresample.a libswscale.so.7

libavcodec.so.60.3.100 libavfilter.so libavformat.so.60.3.100 libswresample.so libswscale.so.7.1.100

libavdevice.a libavfilter.so.9 libavutil.a libswresample.so.4 pkgconfig

libavdevice.so libavfilter.so.9.3.100 libavutil.so libswresample.so.4.10.100

zzj@DESKTOP-9H0R2NQ:~/third_party/tpc_c_cplusplus/lycium/usr/FFmpeg$ ls arm64-v8a/lib/

libavcodec.a libavdevice.so.60 libavformat.a libavutil.so.58 libswscale.a

libavcodec.so libavdevice.so.60.1.100 libavformat.so libavutil.so.58.2.100 libswscale.so

libavcodec.so.60 libavfilter.a libavformat.so.60 libswresample.a libswscale.so.7

libavcodec.so.60.3.100 libavfilter.so libavformat.so.60.3.100 libswresample.so libswscale.so.7.1.100

libavdevice.a libavfilter.so.9 libavutil.a libswresample.so.4 pkgconfig

libavdevice.so libavfilter.so.9.3.100 libavutil.so libswresample.so.4.10.100

相关推荐
kakakahahahaha1 小时前
Windows Steam 游戏存档在哪里?定位和恢复排查流程
windows·其他·电脑·笔记本电脑·内容运营·软件需求
Xy-unu1 小时前
Windows 开启外接显示器 HDR 后外接显示器无信号、无法扩展模式故障记录
windows
李游Leo2 小时前
HarmonyOS 7 实战开发 05:把页面做到可上线状态
ios·harmonyos
troy1283 小时前
Codex 安全盲区:代码漏洞生成实测
windows·python·ci/cd·pycharm·django·github·fastapi
其实防守也摸鱼4 小时前
常见安全架构中 Shiro 的认证确认机制解析
运维·服务器·数据库·windows·github
贾伟康5 小时前
【HarmonyOS 7新能力|043】可变字体工程封装:把接入逻辑放进可维护的分层结构
harmonyos·arkts·arkui·ui设计·可变字体
HarmonyOS_SDK5 小时前
HarmonyOS智慧多窗,让应用在任意窗口都“恰到好处”
harmonyos
程序员老陆5 小时前
WHIP 与 WHEP:WebRTC 直播的标准化入口与出口
ffmpeg·音视频·webrtc·whip·whep
五_谷_丰_登7 小时前
windows批处理脚本(bat)问题解决方案大全——持续更新
windows·bat
YCOSA20257 小时前
迎双节 雨晨 Windows 11 IoT 企业版 LTSC 26H1 轻装 28000.2956
windows·物联网