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

相关推荐
威桑9 小时前
记一次Windwos非常离谱的系统错误,IPF错误,程序构建卡顿,程序启动卡顿。。。
windows
zhanshuo11 小时前
用鸿蒙做多人协作,真的可以跨屏秒同步!
harmonyos
zhanshuo11 小时前
HarmonyOS 开发:基于 ArkUI 实现复杂表单验证的最佳实践
harmonyos
Young_Zn_Cu13 小时前
Windows安装虚拟机遇到内容解码失败
linux·windows·ubuntu
嵌入之梦16 小时前
鸿蒙智能居家养老系统构思(续二)—— 适老化烹饪中心详细构思
智能家居·harmonyos·居家养老
Digitally16 小时前
如何轻松将 Windows 10 或 11 PC恢复出厂设置
windows
鸿蒙开发工程师—阿辉17 小时前
HarmonyOS 应用拉起系列(一):应用与元服务互通方式
华为·harmonyos·arkts·鸿蒙
oioihoii19 小时前
深入浅出理解WaitForSingleObject:Windows同步编程核心函数详解
windows·stm32·单片机
xienda1 天前
Windows CMD命令大全
windows
用户5951433221771 天前
HarmonyOS开发:ArkUI相对布局RelativeContainer解决层级嵌套较多问题
harmonyos