首页 > 系统相关 >Linux应用开发笔记(一)交叉编译及执行

Linux应用开发笔记(一)交叉编译及执行

时间:2024-03-31 21:58:36浏览次数:24  
标签:GCC sudo 笔记 编译 编译器 ssh Linux apt

Linux应用开发笔记(一)交叉编译及执行

文章目录


一、GCC编译器

1. 什么是GCC

GCC(GNU Compiler Collection)是一个开源的编译器集合,包含C、C++、Objective-C、Fortran、Java、Ada和Go语言的编译器。它原本是GNU项目的编译器,现已被大多数类Unix操作系统(如Linux、BSD、Mac OS X等)采纳为标准的编译器。GCC的初衷是为GNU操作系统专门编写的一款编译器。

2. 安装GCC

  1. 在虚拟机中更新一下apt,输入以下命令:
sudo apt update
  1. 安装交叉编译器和vim编辑器:
sudo apt install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu vim
  1. 安装完成之后可以输入以下命令验证gcc、g++和vim的安装是否成功:
aarch64-linux-gnu-gcc --version
vim --version

在这里插入图片描述

3.交叉编译

这里可以使用SSH使得虚拟机和VScode互联,从而直接编辑程序放到虚拟机的文件夹里,详细可以看:
https://blog.csdn.net/qq_62464995/article/details/131029280
程序就举最简单的hello world吧,接着寻找所创建的文件的目录,可以看到这里有.c文件
在这里插入图片描述
可以看到这里存在hello.c文件,接着进行编译:

sudo aarch64-linux-gnu-gcc hello.c

此时可以看到目录下产生了一个a.out文件,只需要将其传到开发板即可编译。值得一提的是,由于虚拟机并不是arm64框架,所以不能执行。
在这里插入图片描述
传输结束后,再输入:

sudo ./a.out

这样就可以执行编译好的代码了,如果不能成功编译,可能是没有赋予权限,这个时候需要输入:

sudo chmod 777 a.out

接下来就可以正常读取了。
在这里插入图片描述

二、ssh的使用

1. 连入局域网

这里主要有两种方式:WIFI和USB。
USB:https://lceda001.feishu.cn/docx/YJjodkE1HoubsbxrfuwcXAGLn3e
WIFI:

//先查看附件WiFi信息
nmcli device wifi list
// 找到自己的wifi之后连接,输入时不带[]
nmcli device wifi connect [wifi名称] password [wifi密码]

2. 连接SSH

//先习惯性更新一下
apt-get update
//安装ssh
sudo apt-get install openssh-client
sudo apt-get install openssh-server
//启动ssh
/etc/init.d/ssh start
//修改配置,输入i进入编辑模式,然后将#PermitRootLogin without-password改为PermitRootLogin yes
vim /etc/ssh/sshd_config
//重启并连接
/etc/init.d/ssh restart

连接之后,通过软件移动即可,如下所示:
在这里插入图片描述

标签:GCC,sudo,笔记,编译,编译器,ssh,Linux,apt
From: https://blog.csdn.net/sincerelover/article/details/137156982

相关文章

  • 上课笔记大全
    贪心、分治与倍增魔法+正妹吃月饼+修改+[JSOI2007]建筑抢修+[POI2012]HUR-WarehouseStore;[USACO17JAN]SecretCowCodeS+Moo+[NOIP2004普及组]FBI树+地毯填补问题+逆序对;【国家集训队】种树+哈希冲突;还有\(8\)题未研究。动态规划基础[USACO08MA......
  • linux常用内核优化
    linux内核常用调优参数点击关注......
  • Linux文件查找
    1.文件查找:which+空格文件名          locate+空格文件名(若创建新文件查找不到,需要用updateab加回车键)          find+空格路径+空格-iname(-name)+表达式(文件的大致名字,或者文件放的位置)注:若用-iname可以不分大小写    ......
  • 编译和链接
    今天我们将对编译和链接进行大概的了解!(里面出现的一些操作指令看不懂没关系,以后再给大家讲解呢!目录1.翻译环境和运行环境2.翻译环境2.1预处理(预编译)2.2编译2.2.1词法分析:2.2.2语法分析2.2.3语义分析2.3汇编2.4链接3.运行环境1.翻译环境和运行环境在ANS......
  • linux内存管理2
    1.LVM:管理磁盘的一种方式,与基本磁盘无异。  特点:随意扩张大小2.PV:将物理磁盘转变为物理卷     pvcreate+空格文件磁盘名(创建物理卷)     pvs(查看物理卷)  VG:卷组,里面有多个物理卷组成     vgcreate+空格卷组名++空格+磁盘名 ......
  • linux命令--make -j和make all
    目录一 make-j和makeall区别二实例说明(一)make-j 的例子makeall 的例子结合使用三实例说明(二)**`make`****`makeall`**四makeall可以用make-j替换吗一 make-j和makeall区别make-j和makeall在Linux编译过程中各自扮演了不同的角色,具有不同的功能......
  • C#的笔记~Four
    1.算术运算符(1)使用/运算符时注意:除数可以是不为0的整数(2)使用%运算符时的注意:返回结果的符号与左操作数相同2.赋值运算符(1)简单赋值运算符量=值↗↖做写的操作,做读取操作,可以是常量、表达式被赋予等号右侧的值(2)复合赋值运算符:又称为带运算的......
  • SQL SERVER 从入门到精通 第5版 第二篇 核心技术 第5章 读书笔记
     第五章SQL基础 P63.SQL概述>.SQL的组成>.数据定义语言(datadefinitionlanguage,DDL):用于在数据库系统中,对数据库,表,视图,索引等数据库对象进行创建和管理>.数据控制语言(datacontrollanguage,DCL):实现对数据库中数据的完整性,完全性等的......
  • linux下设置环境变量导致原有环境变量失效
    搭建集群时,想新增一个环境变量,但设置错了导致原因都失效了vim/etc/profile.d/my_env.shexportPATH=/home/atguigu/bin大部分命令都使用不了了,只能使用halp下的命令[root@hadoop102module]#subash:su:未找到命令[root@hadoop102module]#lsbash:ls:未找到命令......
  • 【Linux】认识线程池 AND 手撕线程池(正常版)
    文章目录0.回顾进程池1.计算机层面的池化技术2.线程池预备知识2.1介绍线程池2.2设计线程池的意义是什么?2.3其他知识3.回顾C++类与对象3.1cpp什么情况下成员函数必须是静态的?3.1可变参数列表3.2格式化输出函数3.3预定义符号4.图解线程池运作原理4.0完整代码Makefilelog.......