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/Buildtools$cp 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