linux应用开发-环境构建

交叉开发模式介绍

在一个资源丰富的平台上(主机 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 ./

安装基本开发环境

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

相关推荐
Rabitebla8 小时前
【Linux】进程控制(十二) 自定义 Shell(二):内建命令与进程工作目录管理
linux·c++·笔记·学习·bash
坤坤子吖13 小时前
Linux网络编程:TCP 粘包与半包问题,如何正确处理 TCP 流式数据?
linux·服务器·网络·笔记·网络协议·学习
AI_Gump13 小时前
Harness篇|DeepSeek Harness 上手机:五条安卓移植路线与 App 内 Linux 拆解
android·linux·人工智能·智能手机·deepseek
星恒随风14 小时前
MySQL 从零入门(六):复合查询详解——多表查询、自连接、子查询与 UNION
linux·服务器·数据库·mysql
少司府15 小时前
嵌入式入门篇(二):初识STM32F103ZET6
linux·python·stm32·单片机·嵌入式硬件·mcu·嵌入式软件
无足鸟ICT15 小时前
【RHCA+】IO调度算法
linux·服务器
wacsii16 小时前
【Linux进程(四)】命令行参数与环境变量
linux·服务器
无奈笑天下16 小时前
银河麒麟上lsblk命令教程详解
linux·运维·服务器·数据库
科研邪修法17 小时前
培训PDF保护配置:把需求转换成可验收权限
linux·服务器·网络
Felven18 小时前
中科驭数100G网卡RDMA性能测试
linux·rdma·中科驭数·100g网卡