banner
按时间整理的学习笔记。

文章归档

Scroll down
CMake

一、为什么要规范工程结构

小 demo 可以一个 main.c 加一条 gcc 命令解决,但真实项目会有多个模块、多个库、测试、安装和部署。工程结构不清晰,后期会很难维护。

一个比较常见的 C/C++ 项目结构:

1
2
3
4
5
6
7
8
9
10
11
my_app/
├── CMakeLists.txt
├── include/
│ └── my_app/
│ └── version.h
├── src/
│ ├── main.c
│ └── version.c
├── tests/
│ └── test_version.c
└── README.md

一、什么是交叉编译

交叉编译是指在一种平台上编译另一种平台运行的程序。比如在 x86_64 Ubuntu 电脑上编译 ARM 开发板运行的程序。

常见组合:

1
2
开发机:x86_64 Linux
目标板:ARM Linux

为什么需要交叉编译:

  • 开发板性能弱,编译慢。
  • 开发板存储小,不适合安装完整工具链。
  • CI/CD 通常运行在服务器上。
  • 需要统一构建环境。
1
请输入关键词进行搜索