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

相关推荐
A小辣椒1 天前
TShark:Wireshark CLI 功能
linux
A小辣椒2 天前
TShark:基础知识
linux
AlfredZhao2 天前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao2 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334663 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪3 天前
linux 拷贝文件或目录到指定的位置
linux
摇滚侠3 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
bush43 天前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5203 天前
Linux 11 动态监控指令top
linux
不会C语言的男孩3 天前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言