Matter 笔记1-环境准备,编译

小明 2025-05-06 19:19:10 10

不要远���登录Ubuntu输入以下命令,原因:ubuntu/linux上的http代理设置

1. 准备

1.1 工具

  1. Ubuntu 22.04 LTS
  2. Clash 里General的端口设置到ubuntu 的网络设置里

1.2 代码

这里使用芯科整理过的代码

git clone https://github.com/SiliconLabs/matter.git
git pull
git submodule update --init

1.3 环境

  1. 基础
sudo apt-get install git gcc g++ pkg-config libssl-dev libdbus-1-dev libglib2.0-dev libavahi-client-dev ninja-build python3-venv python3-dev python3-pip unzip libgirepository1.0-dev libcairo2-dev libreadline-dev
  1. 用户界面的构建

    如果通过build_examples.py和with-ui变体构建,也要安装SDL2:

sudo apt-get install libsdl2-dev

2. 更新环境

source scripts/bootstrap.sh

scripts/bootstrap.sh脚本会从头开始重新创建环境,开销很大,所以除非环境过时了,否则不要运行它。

此时出现的问题:

ImportError: cannot import name 'OneStyleAndTextTuple' from 'prompt_toolkit.formatted_text'

解决办法:更改 scripts/setup/constraints.txt. 中的

prompt-toolkit==3.0.38
改为 
prompt-toolkit==3.0.43

3. 针对主机操作系统(Linux或macOS)的构建

source scripts/activate.sh
gn gen out/host
ninja -C out/host

这些命令生成适合调试的配置。要配置优化的构建,指定is_debug=false:

gn gen out/host --args='is_debug=false'
ninja -C out/host

3.1 测试

  1. 要运行所有测试,请运行以下命令:
ninja -C out/host check

出现:‘#3:’,'InetEndPoint::TestInetEndPoint ',‘FAILED’ 时请查看:[BUILDING] ninja -C ./out/debug error

  1. 只运行src/inet/tests中的测试,可以运行以下命令:
ninja -C out/host src/inet/tests:tests_run

注意:构建系统缓存通过的测试,所以你可能会看到以下消息:

ninja: no work to do

4. 编译chip-tool

./scripts/examples/gn_build_example.sh examples/chip-tool out/chip-tool

5. 官方使用说明

点击:Building Matter

The End
微信