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

相关推荐
薛定猫AI18 小时前
Codex 与 Claude Code 全平台安装配置指南(Windows / macOS / Linux)
linux·windows·macos
console.log('npc')19 小时前
Windows 11 安装 WSL2 + Ubuntu + Docker + Codex + Sub2API 教学
windows·docker·powershell·ubantu·codex
木斯佳19 小时前
HarmonyOS 6 ArkGraphics 3D精讲:从旋转立方体看鸿蒙原生3D能力
3d·华为·harmonyos
nashane1 天前
HarmonyOS 6学习:PC端悬浮窗模式与智能长截图的协同优化实战
学习·华为·harmonyos
Mr_hwt_1231 天前
Windows安装Claude Code详细教程(含apikey配置)
windows·ai编程·claude code
Languorous.1 天前
Windows 安装 Linux 虚拟机 / WSL 完整教程(新手零失败)
linux·运维·windows
郭龙飞9801 天前
OpenClaw技能拓展教程 五大场景高效办公实操指南
人工智能·windows·语言模型
小鹿软件办公1 天前
在 Windows 中什么是 iphlpsvc?禁用它安全吗?
windows·安全·iphlpsvc
诸神缄默不语1 天前
DNS 与 hosts 文件:Windows 11 中的名称解析配置
windows·计算机网络·dns·hosts
阿钱真强道1 天前
23 鸿蒙LiteOS 消息队列(Queue)实战教程:任务间数据传递详解
harmonyos·鸿蒙·消息·队列·liteos·rk2206·瑞星微