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/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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/90662.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/90662.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/90662.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Kubernetes服務暴露與負載均衡深度探析

目錄 Kubernetes服務基礎 服務類型與適用場景 服務發現與DNS 負載均衡機制 kube-proxy IPVS Ingress控制器 Ingress與服務暴露 Ingress資源 Ingress控制器 負載均衡策略與配置 服務配置 Ingress配置 IPVS配置 高可用性設計 服務冗余 Ingress控制器高可用 負載…

探索飛算 JavaAI 進階:解鎖高效Java開發的新維度

前引&#xff1a;在當今快速迭代的軟件開發領域&#xff0c;Java作為企業級應用的基石&#xff0c;持續推動著技術創新。隨著性能需求的提升&#xff0c;“飛算JAVA”應運而生&#xff0c;它融合了現代優化理念&#xff0c;為開發者提供了一套簡潔、高效的解決方案。本文將深入…

Java大廠面試故事:謝飛機的互聯網醫療系統技術面試(Spring Boot、MyBatis、Kafka、Spring Security、AI等)

Java大廠面試故事&#xff1a;謝飛機的互聯網醫療系統技術面試&#xff08;Spring Boot、MyBatis、Kafka、Spring Security、AI等&#xff09;本文以互聯網醫療場景為主線&#xff0c;模擬Java大廠真實面試流程&#xff0c;由嚴肅面試官與"水貨"程序員謝飛機展開有趣…

Deekseek 學習筆記

目錄 比較全的微調筆記&#xff0c;推薦&#xff1a; ds 硬件gpu測試網站&#xff1a; 比較全的微調筆記&#xff0c;推薦&#xff1a; 零基礎入門&#xff1a;DeepSeek微調教程來了&#xff01;_deepseek微調訓練-CSDN博客 r1微調筆記&#xff1a; https://zhuanlan.zhihu…

aksk前端簽名實現

需求&#xff1a; 頁面和后臺使用aksk進行簽名校驗&#xff0c;普通JSON參數簽名沒問題&#xff0c;但使用formData上傳文件時簽名總是無法通過后臺校驗 關鍵點&#xff1a; 1、瀏覽器在傳遞formData格式數據時會自動隨機boundary&#xff0c;這樣頁面無法在請求發起前拿到隨機…

基于物聯網的智能體重秤設計與實現

標題:基于物聯網的智能體重秤設計與實現內容:1.摘要 隨著物聯網技術的飛速發展&#xff0c;智能設備在人們日常生活中的應用越來越廣泛。本研究的目的是設計并實現一款基于物聯網的智能體重秤&#xff0c;以滿足人們對健康數據實時監測和管理的需求。方法上&#xff0c;采用高精…

安全領域的 AI 采用:主要用例和需避免的錯誤

作者&#xff1a;來自 Elastic Elastic Security Team 安全領域的 AI 采用&#xff1a;主要用例和需避免的錯誤 人工智能&#xff08;artificial intelligence - AI&#xff09;在安全領域的廣泛應用呈現出一種矛盾。一方面&#xff0c;它幫助安全專家大規模應對高級威脅&…

Element-Plus-全局自動引入圖標組件,無需每次import

效果圖配置如下1、核心代碼修改main.js/ts//main.js // 全局注冊圖標組件 import * as ElementPlusIconsVue from element-plus/icons-vue for (const [key, component] of Object.entries(ElementPlusIconsVue)) {app.component(key, component) } app.use(ElementPlusIconsVu…

日歷插件-FullCalendar的詳細使用

一、介紹FullCalendar 是一個功能強大、高度可定制的 JavaScript 日歷組件&#xff0c;用于在網頁中顯示和管理日歷事件。它支持多種視圖&#xff08;月、周、日等&#xff09;&#xff0c;可以輕松集成各種框架&#xff0c;并提供豐富的事件處理功能。二、實操案例具體代碼如下…

【A題解題思路】2025APMCM亞太杯中文賽A題解題思路+可運行代碼參考(無償分享)

注&#xff1a;該內容由“數模加油站”原創&#xff0c;無償分享&#xff0c;可以領取參考但不要利用該內容倒賣&#xff0c;謝謝&#xff01;A 題 農業灌溉系統優化問題1思路框架&#xff1a;1.1 研究背景與問題意義土壤濕度是農業生產中影響作物根系水分供應的關鍵環境指標。…

【JAVA】面向對象三大特性之繼承

提示&#xff1a;文章寫完后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 文章目錄前言一、繼承的概念和使用細則1.1 繼承的基本使用和含義1.2 關于子類訪問父類成員的問題1.3 super關鍵的引出1.4 super調用父類當中指定的構造方法1.5 關于super和th…

基于深度學習的自動調制識別網絡(持續更新)

基于卷積神經網絡架構 CNN 參考文獻 T.J. O’Shea, J. Corgan, T.C. Clancy, Convolutional radio modulation recognition networks, in: Proc. Int. Conf. Eng. Appl. Neural Netw., Springer, 2016, pp. 213–226. MCNet 參考文獻 T. Huynh-The, C.-H. Hua, Q.-V. Pha…

Java進階---并發編程

一.線程復習1.什么是線程&#xff0c;進程進程是操作系統分配資源的基本單位線程是進程中的一個執行單元(一個獨立執行的任務)&#xff0c;是cpu執行的最小單元2.Java中如何創建線程1.繼承Thread類&#xff0c;重寫run()&#xff0c;直接創建子類的對象2.類實現Runnable接口&am…

小車循跡功能的實現(第六天)

&#x1f468;?&#x1f4bb;個人主頁&#xff1a;開發者-削好皮的Pineapple! &#x1f468;?&#x1f4bb; hello 歡迎 點贊&#x1f44d; 收藏? 留言&#x1f4dd; 加關注?! &#x1f468;?&#x1f4bb; 本文由 削好皮的Pineapple! 原創 &#x1f468;?&#x1f4…

C++ auto與 for循環

一、數組 #include <iostream> #include <vector> using namespace std; int main() {int vec[6] {1,2,3};for (auto num : vec) { /* num 是 int */ cout << "Hello, world!" << num <<endl;}return 0; }二、STL容器與迭代器 for 循…

【RK3568+PG2L50H開發板實驗例程】FPGA部分 | ROM、RAM、FIFO 的使用

本原創文章由深圳市小眼睛科技有限公司創作&#xff0c;版權歸本公司所有&#xff0c;如需轉載&#xff0c;需授權并注明出處&#xff08;www.meyesemi.com) 1.實驗簡介 實驗目的&#xff1a; 掌握紫光平臺的 RAM、ROM、FIFO IP 的使用 實驗環境&#xff1a; Window11 PDS2022…

力扣-21.合并兩個有序鏈表

題目鏈接 21.合并兩個有序鏈表 class Solution {public ListNode mergeTwoLists(ListNode list1, ListNode list2) {ListNode p1 list1;ListNode p2 list2;ListNode p new ListNode(0);ListNode cur p;while (p1 ! null && p2 ! null) {if (p1.val > p2.val) …

MoE混合專家模型:千億參數的高效推理引擎與架構革命

本文由「大千AI助手」原創發布&#xff0c;專注用真話講AI&#xff0c;回歸技術本質。拒絕神話或妖魔化。搜索「大千AI助手」關注我&#xff0c;一起撕掉過度包裝&#xff0c;學習真實的AI技術&#xff01; 從稀疏激活到多模態協同的智能計算范式 &#x1f9e9; 一、核心思想與…

【論文筆記】BlockGaussian:巧妙解決大規模場景重建中的偽影問題

論文地址&#xff1a;https://arxiv.org/pdf/2504.09048 大規模場景的重建方法不僅僅對于高空航拍數據有效&#xff0c;而且對于地面大中場景也有增強效果&#xff0c;故專門來學習一下這一方向的知識。感謝作者大佬們的great work。 Abstract 三維高斯潑濺&#xff08;3DGS…

網絡眾籌項目數據庫(2014-2024.11)

1727網絡眾籌項目數據庫&#xff08;2014-2024.11&#xff09;數據簡介作為新興互聯網融資模式&#xff0c;眾籌已成為越來越多創業者和中小企業獲取資金的渠道&#xff0c;但眾籌項目一直面臨融資成功率低的困難&#xff0c;成功融資的項目在許多平臺上占比不足五成。而目前對…