国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

基于Linux平臺(tái)交叉編譯 flutter arm64應(yīng)用

這篇具有很好參考價(jià)值的文章主要介紹了基于Linux平臺(tái)交叉編譯 flutter arm64應(yīng)用。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

??? 操作系統(tǒng)ubuntu 20.04,開(kāi)發(fā)工具Android Studio + Flutter,運(yùn)行平臺(tái)RK3566 Linux。截止現(xiàn)在Flutter官方尚未正式對(duì)Linux arm64進(jìn)行支持,僅有flutter-elinux可用。開(kāi)發(fā)環(huán)境的搭建過(guò)程遇到了很多的坑,幸運(yùn)的是最終完成了。為避免后來(lái)者再次浪費(fèi)時(shí)間,特撰此文以饗讀者。

??? 本文僅記錄編譯環(huán)境的搭建和驗(yàn)證,不涉及具體的應(yīng)用開(kāi)發(fā)。

一、操作系統(tǒng)以及基礎(chǔ)環(huán)境準(zhǔn)備

1、操作系統(tǒng)準(zhǔn)備

? 本文選用ubuntu 20.04。其他版本作者沒(méi)試過(guò),如果你驗(yàn)證某版本可行請(qǐng)留言。

2、準(zhǔn)備基礎(chǔ)環(huán)境

? 安裝unzip curl clang cmake pkg-config以及g++-10-aarch64-linux-gnu

sudo apt install unzip curl clang cmake pkg-config

sudo apt install git

sudo apt-get install g++-10-aarch64-linux-gnu

3、開(kāi)發(fā)工具準(zhǔn)備與環(huán)境配置

? 下載flutter-elinux,并移動(dòng)到/opt/目錄下

git clone https://github.com/sony/flutter-elinux.git

sudo mv flutter-elinux /opt/

?配置環(huán)境變量,修改 .bashrc 文件,增加export PATH="$PATH:/opt/flutter-elinux/bin",然后執(zhí)行source .bashrc

~$ vi .bashrc

#在文件末尾增加如下內(nèi)容:
export PATH="$PATH:/opt/flutter-elinux/bin"

~$ source .bashrc

? 至此,系統(tǒng)環(huán)境就配置好了。

二、建立并編譯第一個(gè)DEMO程序

1、創(chuàng)建第一個(gè)范例程序

flutter-elinux create demo1

cd demo1

?? 這樣我們就創(chuàng)建了第一個(gè)示例程序demo1并切換到該目錄下,后面的操作均在此目錄下進(jìn)行。

2、配置編譯工具和鏈接庫(kù)

? elinux/CMakeLists.txt打如下補(bǔ)丁

index 8f2a634..6a2adbe 100644
--- a/elinux/CMakeLists.txt
+++ b/elinux/CMakeLists.txt
@@ -16,6 +16,9 @@ set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
 set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
 set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

+set(TARGET_ARCHITECTURE "arm64")
+set(CMAKE_CXX_COMPILER aarch64-linux-gnu-g++-10)
+

? elinux/runder/CMakeLists.txt打上如下補(bǔ)丁

--- a/elinux/runner/CMakeLists.txt
+++ b/elinux/runner/CMakeLists.txt
@@ -1,5 +1,5 @@
 cmake_minimum_required(VERSION 3.15)
-project(runner LANGUAGES CXX)
+

 if(FLUTTER_TARGET_BACKEND_TYPE MATCHES "gbm")
   add_definitions(-DFLUTTER_TARGET_BACKEND_GBM)
@@ -17,7 +17,18 @@ add_executable(${BINARY_NAME}
   "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc"
 )
 apply_standard_settings(${BINARY_NAME})
+
+set(FLUTTER_LIB   ${CMAKE_CURRENT_SOURCE_DIR}/../flutter_lib/)
 target_link_libraries(${BINARY_NAME} PRIVATE flutter)
 target_link_libraries(${BINARY_NAME} PRIVATE flutter flutter_wrapper_app)
+target_link_libraries(${BINARY_NAME} PRIVATE ${FLUTTER_LIB}libffi.so )
+target_link_libraries(${BINARY_NAME} PRIVATE ${FLUTTER_LIB}libwayland-cursor.so )
+target_link_libraries(${BINARY_NAME} PRIVATE ${FLUTTER_LIB}libxkbcommon.so.0 )
+target_link_libraries(${BINARY_NAME} PRIVATE ${FLUTTER_LIB}libmali-wayland.so  )
+target_link_libraries(${BINARY_NAME} PRIVATE ${FLUTTER_LIB}libdrm.so.2 )
+target_link_libraries(${BINARY_NAME} PRIVATE ${FLUTTER_LIB}libwayland-server.so.0 )
+target_link_libraries(${BINARY_NAME} PRIVATE ${FLUTTER_LIB}libc.so.6 )
+target_link_libraries(${BINARY_NAME} PRIVATE ${FLUTTER_LIB}ld-linux-aarch64.so.1 )
+target_include_directories(${BINARY_NAME} PRIVATE "${CMAKE_SOURCE_DIR}")
+

注意補(bǔ)丁前面有一行是刪除操作,不要漏掉了。 ?

創(chuàng)建elinux/flutter_lib目錄,將前面用到的庫(kù)文件都拷貝進(jìn)去。這些庫(kù)文件來(lái)自rk356x_linux源碼(本例如此,根據(jù)你將要運(yùn)行的平臺(tái)確定,同事或者合作伙伴通常會(huì)有源碼)

3、編譯

? 執(zhí)行如下命令進(jìn)行編譯

flutter-elinux build elinux --target-arch=arm64

? 執(zhí)行完畢后會(huì)生成一個(gè)build目錄,需要的文件均在build/elinux/arm64/release/bundle/下,整體拷貝到rk3566板子上就可以啟動(dòng)了。

~/demo1$ ls build/elinux/arm64/release/bundle/
data  demo1  lib

參考文獻(xiàn):

arm64平臺(tái)移植flutter,搭建PC端交叉編譯說(shuō)明-CSDN博客文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-735136.html

到了這里,關(guān)于基于Linux平臺(tái)交叉編譯 flutter arm64應(yīng)用的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Qt5.9 Ubuntu18.04-64位交叉編譯目標(biāo)機(jī)為Ubuntu18.04-arm-32位基于RK3288

    Qt5.9 Ubuntu18.04-64位交叉編譯目標(biāo)機(jī)為Ubuntu18.04-arm-32位基于RK3288

    文章目錄 一、需要準(zhǔn)備的材料 二、操作步驟 1.更新軟件源 2.安裝環(huán)境依賴 3.搭建交叉編譯環(huán)境 4.編譯QT 5.安裝Qt creator 6.配置Qt kit 三.測(cè)試 前言 本文使用VMware虛擬機(jī)作為Ubuntu系統(tǒng)載體,采用Ubuntu18.04-64位鏡像作為QT編譯環(huán)境,采用RK3288搭載Ubuntu18.04-arm-32作為QT執(zhí)行環(huán)境。 ① 交

    2024年02月17日
    瀏覽(29)
  • x86架構(gòu)ubuntu 搭建arm64交叉編譯環(huán)境及QT編譯arm64架構(gòu)工程

    x86架構(gòu)ubuntu 搭建arm64交叉編譯環(huán)境及QT編譯arm64架構(gòu)工程

    背景:由于最近項(xiàng)目需要做國(guó)產(chǎn)系統(tǒng)適配,很多軟件需要重新編譯以適配不同架構(gòu)CPU。 環(huán)境: 1、主機(jī)win10 64bit? ?vmware虛擬主機(jī)ubuntu1804 64bit 2、vmware虛擬主機(jī)已經(jīng)安裝了qt5.14.2及qt_create4.11.1 一、C/C++程序交叉編譯 1、交叉編譯環(huán)境搭建 ①選定編譯工具aarch64-linux-gnu ②安裝交叉

    2024年02月09日
    瀏覽(31)
  • 在Linux、Ubuntu中跨平臺(tái)編譯ARM(AARCH64)平臺(tái)的binutils

    Binutils 是GNU(https://www.gnu.org/)提供的一組二進(jìn)制工具的集合。通常,在已經(jīng)安裝了Linux操作系統(tǒng)的個(gè)人電腦上,系統(tǒng)就已經(jīng)自帶了這個(gè)工具集。但在進(jìn)行嵌入式開(kāi)發(fā)的時(shí)候,可能會(huì)用到支持ARM64平臺(tái)的Binutils,這時(shí)就需要用到交叉編譯。 此前,在【1】我們已經(jīng)介紹過(guò)Ubuntu中交

    2024年02月05日
    瀏覽(87)
  • QT5交叉編譯保姆級(jí)教程(arm64、mips64)

    QT5交叉編譯保姆級(jí)教程(arm64、mips64)

    什么是交叉編譯? 簡(jiǎn)單說(shuō),就是在當(dāng)前系統(tǒng)平臺(tái)上,開(kāi)發(fā)編譯運(yùn)行于其它平臺(tái)的程序。 比如本文硬件環(huán)境是x86平臺(tái),但是編譯出來(lái)的程序是在arm64架構(gòu)、mips64等架構(gòu)上運(yùn)行 本文使用的操作系統(tǒng):統(tǒng)信UOS家庭版22.0 一、安裝QT5: 二、安裝編譯所需的組件 #安裝python環(huán)境(QT中的

    2024年02月05日
    瀏覽(30)
  • Qt教程3-Ubuntu(x86_64)上配置arm64(aarch64)交叉編譯環(huán)境及QT編譯arm64架構(gòu)工程

    Qt教程3-Ubuntu(x86_64)上配置arm64(aarch64)交叉編譯環(huán)境及QT編譯arm64架構(gòu)工程

    苦辣酸甜時(shí)光八載,春夏秋冬志此一生 Qt簡(jiǎn)介: Qt(官方發(fā)音 [kju:t],音同 cute)是一個(gè)跨平臺(tái)的 C++ 開(kāi)發(fā)庫(kù),主要用來(lái)開(kāi)發(fā)圖形用戶界面(Graphical User Interface,GUI)程序,當(dāng)然也可以開(kāi)發(fā)不帶界面的命令行(Command User Interface,CUI)程序。 Qt 支持的操作系統(tǒng)有很多,例如通用

    2024年01月23日
    瀏覽(49)
  • X86架構(gòu)下交叉編譯arm64源代碼

    glibc在/lib(/lib32 /lib64)目錄下的.so文件為libc.so.6 glibc是GNU發(fā)布的libc庫(kù),即c運(yùn)行庫(kù)。glibc是linux系統(tǒng)中最底層的api,幾乎其它任何運(yùn)行庫(kù)都會(huì)依賴于glibc。glibc除了封裝linux操作系統(tǒng)所提供的系統(tǒng)服務(wù)外,它本身也提供了許多其它一些必要功能服務(wù)的實(shí)現(xiàn)。由于 glibc 囊括了幾乎所有

    2023年04月21日
    瀏覽(23)
  • Qt交叉編譯到arm平臺(tái)

    Qt交叉編譯到arm平臺(tái)

    從網(wǎng)上下載對(duì)應(yīng)版本的Qt源碼 https://download.qt.io/archive/qt/5.9/5.9.3/single/,我下載的是5.9.3的版本。 解壓到ubuntu上 下載使用gcc 4.9.4編譯器,并配置環(huán)境變量。(盡量選擇高版本編譯器) 配置Qt相關(guān)的編譯器,使用linux-arm-gnueabi前綴, cd qtbase/mkspecs 修改qmake.conf文件,更改編譯器為

    2024年02月11日
    瀏覽(28)
  • live555交叉編譯(ubuntu+arm平臺(tái))

    1.下載源碼 ??????http://live555.com/liveMedia/public/live555-latest.tar.gz 2.解壓 tar -zxvf live555-latest.tar.gz 3.修改配置文件 1)進(jìn)入live文件夾 2)復(fù)制一份配置文件 cp config.armlinux config.myarmlinux chmod 777 config.myarmlinux 3) vim config.myarmlinux 命令行-刪除全部配置 4) 修改為 5.編譯執(zhí)行

    2024年02月05日
    瀏覽(20)
  • ubuntu 20.04 aarch64 平臺(tái)交叉編譯 opencv

    ubuntu 20.04 aarch64 平臺(tái)交叉編譯 opencv

    win10 64 位 VMware Workstation Pro 16 虛擬機(jī) 虛擬機(jī)安裝 ubuntu 20.04 opencv 版本: 來(lái)自 github 當(dāng)前最新 4.7 交叉編譯 opencv,用于 嵌入式 aarch64 平臺(tái) 可以直接從 github 下載 release 版本或者 使用 git clone 最新的 opencv 倉(cāng)庫(kù) github opencv https://github.com/opencv/opencv git clone https://github.com/opencv/openc

    2024年02月09日
    瀏覽(38)
  • 【一、搭建通用Arm平臺(tái)的QT交叉編譯環(huán)境】

    【一、搭建通用Arm平臺(tái)的QT交叉編譯環(huán)境】

    為實(shí)現(xiàn)目標(biāo)嵌入式平臺(tái)能夠正常運(yùn)行Qt程序,則需要在目標(biāo)平臺(tái)上部署QT運(yùn)行環(huán)境。 Ubuntu系統(tǒng),本文使用的是20.04版本 arm平臺(tái)通用交叉編譯工具鏈 QT源碼 1.下載工具鏈 點(diǎn)擊鏈接https://releases.linaro.org/components/toolchain/binaries/latest-7/arm-linux-gnueabi/,選擇下圖中標(biāo)識(shí)的文件進(jìn)行下載。

    2023年04月16日
    瀏覽(24)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包