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