不要远程登录Ubuntu输入以下命令,原因:ubuntu/linux上的http代理设置
1. 准备
1.1 工具
- Ubuntu 22.04 LTS
- Clash 里General的端口设置到ubuntu 的网络设置里
1.2 代码
这里使用芯科整理过的代码
git clone https://github.com/SiliconLabs/matter.git
git pull
git submodule update --init
1.3 环境
- 基础
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
- 用户界面的构建
如果通过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 测试
- 要运行所有测试,请运行以下命令:
ninja -C out/host check
出现:‘#3:’,'InetEndPoint::TestInetEndPoint ',‘FAILED’ 时请查看:[BUILDING] ninja -C ./out/debug error
- 只运行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