交叉开发模式介绍
在一个资源丰富的平台上(主机 Host)进行所有的开发工作(编码、编译、链接、调试),然后将生成的可执行文件、系统镜像等部署到资源受限的另一个平台(目标机 Target)上运行。
核心组成部分

虚拟机配置
- 网络模式 : 注意要采用桥接模式或者NAT
- (桥接模式)相当于一个独立 PC
- ( NAT)内网用户
- Ubuntu Tools:主要是为了无缝操作以及系统自适应界面
bash
sudo apt update #更新Advanced Package Tool(apt高级软件包工具)
sudo apt install open-vm-tools-desktop
软件基础环境配置
远程连接服务ssh-后续VsCode连接用到
- 安装ssh服务
bash
sudo apt update
sudo apt install openssh-server
- 启动服务,并设置开机自启
bash
sudo systemctl start ssh
sudo systemctl enable ssh
- 查看服务状态即可
sudo systemctl status ssh
- 基本的使用
- ssh <用户名>@<服务器IP地址>
ssh developer@192.168.1.100
- 从本地上传文件到服务器,scp /本地文件路径/file.txt <用户名>@<服务器IP>:/远程路径/
scp ./my_app.c developer@192.168.1.100:/home/developer/projects/
- 从服务器下载文件到本地,scp <用户名>@<服务器IP>:/远程路径/file.txt /本地文件路径/
scp developer@192.168.1.100:/home/developer/app.log ./
- ssh <用户名>@<服务器IP地址>
安装基本开发环境
sudo apt update && sudo apt install -y build-essential manpages-dev flex bison
相应介绍
-
build-essential(基础开发环境)
- gcc: GNU C 编译器。将 .c 源代码编译成可执行程序的工具。
- g++: GNU C++ 编译器。将 .cpp 源代码编译成可执行程序的工具。
- make: 自动化构建工具。项目包含多个源文件时,make 可以根据 Makefile 文件中的规则,自动调用 gcc/g++ 来编译和链接它们。
- dpkg-dev: 包含构建Debian软件包所需的工具
-
manpages-dev(C函数man手册)
man 3 printf
#中数字含义- 1: 可执行程序或Shell命令 (如 ls, cd)
- 2: 系统调用 (如 fork, read)
- 3: 库函数 (C库函数在这里)
-
flex 和 bison(词法分析与语法分析工具)
- Flex (The Fast Lexical Analyzer)
- Bison (GNU Parser Generator)
下载第三方预编译好的工具链
用于本地虚拟的arm架构同用工具链如下:
-
安装一个用于32位ARM平台的交叉编译器
sudo apt install gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf
-
安装一个用于64位ARM平台的交叉编译器
sudo apt install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu