一. 编译环境安装
1. 安装ubuntu20.04,详细的教程请看以下链接
VMware虚拟机下安装Ubuntu20.04(保姆级教程)_ubuntu 20.04 虚拟机-CSDN博客
2. 部署flutter环境,详细教程请参照以下链接
构建 flutter 应用程序 ·sony/flutter-elinux 维基 ·GitHub上
注意:在进行docker映射时,必须在docker里安装必要的应用,不能在ubuntu里面安装因为上述链接已经讲的很详细,本文不再赘述,
只给出遇到问题的解决方案。
1、docker run 缺少镜像 需要先运行。
docker pull arm64v8/ubuntu:18.04
2、docker run 警告且无法进入bash ubuntu22.04 不会出现,ubuntu18.04会有此问题。按照下列方式运行。
docker run -it -v /usr/bin/qemu-aarch64-static:/usr/bin/qemu-aarch64-static arm64v8/ubuntu:18.04
3、编译缺少libfontconfig
重新进入docker中安装,然后重新拷贝sysroot docker pull arm64v8/ubuntu:18.04 docker run -it -v /usr/bin/qemu-aarch64-static:/usr/bin/qemu-aarch64-static arm64v8/ubuntu:18.04
找到之前的容器ID
sudo docker ps -a
容器未启动则先启动
sudo docker start [容器ID]
进入容器
docker exec -it [容器ID] bash
apt install libfontconfig
exit
二. 编译过程问题
1.
2.
3.
4.
以上问题主要是docker镜像没有安装好对应的应用,需要进行重新安装
三. 运行
架构为arm64、release模式生成的代码在build/elinux/arm64/release/bundle 本机的可以直接运行,交叉编译的只需将bundle目录拷贝到目标机器上。 运行
./sample -b .
注:直接运行可以查看所有参数
./sample
总结 以上就是今天讲述的内容,flutter编译嵌入式arm64程序探索过程比较艰辛,尤其是容易被误导需 要生成flutter的engine和embedded,这部分工作量很大,但是并没有作用。除非有特殊需求,正 常情况使用预编译的so即可。整个编译过程只需要flutter-elinux,不需要额外的工具链,完全参 考wiki即可。本文的作用只是作为一个指引,以及给出一些小问题的解决方案。 sudo docker ps -a sudo docker start [容器ID] docker exec -it [容器ID] bash apt install libfontconfig exit ./sample -b . ./sampl
标签:容器,部署,ID,编译,ubuntu,docker,flutter From: https://www.cnblogs.com/weijian168/p/18160533