1. 前言
flutter的下载参考前一篇文章,flutter源码下载。
源码下载结束后,最好使用gclient切换stable版本,比较稳定,这样使用自定义编译器修改的缺陷最少。
2. 准备编译环境
2.1 确定sysroot
sysroot是指你的编译器的sysroot,编译器的sysroot可以通过命令打印出来:
arm-linux-gnueabihf-gcc --print-sysroot
到时候编译不过,可能需要在sysroot路径的下的lib中新增内容,这里不建议直接修改sysroot,影响原生编译器运行,所以拷贝一份sysroot进行备份。
cp `arm-linux-gnueabihf-gcc --print-sysroot` ~/sysroot/arm-linux-gnueabihf
如果你的编译器运行 使用参数--print-sysroot没有打印,可以使用 -v找找--sysroot=dir对应的dir,如果还是没有,可以直接找到编译器的安装目录,去查找类似linux根目录(路径下包含bin, lib, usr等目录)的路径。如编译器gcc-linaro-12.0.1-2022.02-x86_64_arm-linux-gnueabihf.tar.gz,我安装在toolchains(相对路径)目录,那么他的sysroot就是:toolchains/gcc-linaro-12.0.1-2022.02-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/libc.
2.2 创建clang软连接
直接修改 src/build/toolchain/custom/BUILD.gn最终还是编译不过,使用软连接方式即可
直接修改 src/build/toolchain/custom/BUILD.gn最终还是编译不过,使用软连接方式即可
直接修改 src/build/toolchain/custom/BUILD.gn最终还是编译不过,使用软连接方式即可
要么直接创建clang/clang++的软连接
ln -sf \
toolchains/gcc-linaro-12.0.1-2022.02-x86_64_arm-linux-gnueabih/bin/arm-linux-gnueabihf-gcc \
toolchains/gcc-linaro-12.0.1-2022.02-x86_64_arm-linux-gnueabih/bin/clang
ln -sf \
toolchains/gcc-linaro-12.0.1-2022.02-x86_64_arm-linux-gnueabih/bin/arm-linux-gnueabihf-g++

本文围绕Flutter编译展开,先介绍准备编译环境,包括确定sysroot并备份、创建clang软连接;接着说明编译步骤,如生成ninja编译脚本、进行ninja编译;最后针对编译报错,如找不到依赖、不识别参数等给出解决办法,助力完成Flutter编译。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



