本项目使用CMake进行构建,可以轻松地在PC上进行模拟,或为嵌入式目标进行交叉编译。
1. 克隆仓库
首先,克隆主仓库及其所有子模块(submodule),这一点非常重要,因为LVGL等依赖库是通过子模块引入的。
1 | git clone --recurse-submodules https://github.com/zhangwei43721/Smart_Home_System.git |
如果已经克隆但忘记了 --recurse-submodules
,可以执行以下命令来拉取子模块:
1 | git submodule update --init --recursive |
2. 在Linux PC上模拟运行
这是一种无需硬件即可快速验证UI和业务逻辑的方法。
创建构建目录:
1
2mkdir build
cd build运行CMake生成Makefile:
1
cmake ..
编译项目:
1
make -j8
-j8
表示使用8个线程并行编译,可以加快速度。运行可执行文件:
编译成功后,build
目录下会生成一个名为Smart_Home
的可执行文件。1
./Smart_Home
此时,您应该能看到一个SDL窗口弹窗,显示项目的LVGL界面。
3. 交叉编译 (嵌入式目标)
当您需要为ARM等嵌入式平台编译时,需要指定交叉编译工具链。
准备工具链文件:
创建一个工具链文件(例如arm-gcc.cmake
),内容如下:1
2
3
4set(CMAKE_SYSTEM_NAME Generic)
set(CMAKE_C_COMPILER arm-none-eabi-gcc)
set(CMAKE_CXX_COMPILER arm-none-eabi-g++)
# ... 其他工具链相关设置运行CMake并指定工具链:
在build
目录下,执行:1
cmake .. -DCMAKE_TOOLCHAIN_FILE=../path/to/arm-gcc.cmake
编译:
1
make
编译完成后,将生成适用于目标平台的二进制文件(如
.bin
或.elf
),您可以通过烧录工具将其下载到硬件中运行。