type
status
date
slug
summary
tags
category
icon
password
Flutter Engine的编译以及源码阅读其实挺简单的,只要按照官方文档的步骤来,一般都不会有什么问题.这里记录一下编译的流程,以及源码查看的一些配置和问题.

下载

  1. 下载depot_tools,并配置环境
    1. git clone <https://chromium.googlesource.com/chromium/tools/depot_tools.git> export PATH=/path/to/depot_tools:$PATH
  1. Fork https://github.com/flutter/engine 到自己的账号下
  1. 根目录创建.gclient文件
    1. solutions = [ { "managed": False, "name": "src/flutter", "url": "git@github.com:<your_name_here>/engine.git", "custom_deps": {}, "deps_file": "DEPS", "safesync_url": "", }, ]
  1. 执行 gclient sync
  1. 通过cd src/flutter进入flutter目录下,并执行git remote add upstream git@github.com:flutter/engine.git关联仓库

编译(Android)

  1. src/flutter下执行git pull upstream master同步最新代码
  1. gclient sync更新依赖
  1. ./flutter/tools/gn --android --unoptimized --android-cpu=arm64 生成构建文件
  1. ninja -C out/android_debug_unopt_arm64 编译

VSCode 配置

  • C/CPP
    • 编译完成之后,在out文件下会生成一个compile_commands.json,将这个文件添加到c_cpp_properties.json配置文件中
  • Java
    • 安装两个插件vscjava.vscode-java-packvscjava.vscode-java-dependency
      配置JDK,但是目前要求版本最低为JDK11

问题以及解决办法

  • C/CPP代码头文件总是报错,显示红色波浪线
notion image
调试flutter_toolsFlutter-Timeline
姜康
姜康
一个软件工程师
公告
type
status
date
slug
summary
tags
category
icon
password
🎉博客网站重新制作了🎉
👏欢迎更新体验👏