当前位置: 首页 > news >正文

经验——CLion通过SSH远程开发__imx6ull的linux开发

CLion:2024.2.2

引言

        初学嵌入式linux开发看的是正点原子的imx6ull教学视频,使用的是VS Code。虽然VS Code的代码补全和界面还可以,也能使用诸如通义灵码等插件,但相比之下,CLion更为出色。

        虽然在嵌入式Linux开发里,集成开发环境IDE已经不是那么重要,平时用的最多的是命令行。但是,敲代码时能有一个好的编辑器那是再好不过了,可以极大提高效率、减少错误。CLion则具备了诸如格式化代码、自定义代码样式、强大的代码补全、丰富的插件库、代码检查、集成git、代码洞察等功能,可以极大地改善开发体验。

        CLion的安装配置过程可以参考【嵌入式IDE】等博客,可按需查看。

          在使用CLion开发时,可以直接在Linux(虚拟机)里面安装一个CLion,可以在主机(Windows)里远程开发。

        在Linux里直接安装CLion的话,可以更为直接的使用Linux环境,比如桌面和命令行随时可以切出来。但编译像Linux内核这样的大型项目时,会非常非常地卡,即使我的虚拟机配置的内存是16GB,处理器分配了16个(一共就16个)。
        如果是通过远程开发的话,就不容易出现卡顿现象,只不过在使用Linux桌面环境时需要来回切换,除非你有两个显示器

        可惜的是,目前由于CLion无法正确识别Linux内核项目的Makefile,所以无法使用代码洞察,很难进行自动代码补全,自动代码补全凭通义灵码插件一己之力承担。

        长话短说,接下来就讲如何配置SSH来使用远程开发,主要是为了解决在虚拟机里使用CLion编译linux内核源码时容易崩溃的问题。

一、前置条件

  • 使用过CLion开发,熟悉开发流程
  • 使用过Linux环境开发一些裸机项目(正点原子imx6ull视频教程第一期)
  • 配置过VMware虚拟机的网卡

二、基础准备

1,安装SSH:

        在Ubuntu里安装open-ssh。

sudo apt update
sudo apt install openssh-server

         安装完成后,测试连接情况,一般都是可以正常使用的。此时可以通过按住“Ctrl+C”来停止这个界面(不是停止ssh),以便继续输入命令

sudo systemctl status ssh


        如果没有正常工作,可以开启ssh

sudo systemctl start ssh

2,虚拟机网络配置:

        最好有一个网卡是NAT模式,这个主要供虚拟机上网。ip地址可以选择自动分配,一般也不大会变动,需要的话可以设置为静止ip。

        


        查看ip地址,下面那个ens37是NAT模式,这里可以选用它作为服务器ip。此外,需注意SSH是一种网络协议,与ftp、http在本质上没有什么差别,都是进行网络通信的,自然需要ip地址。

        

三、CLion配置SSH

1,前言:

        随便创建一个工程,因为主体是在Linux环境里,需要使用Linux的命令行,不需要在本地导入工程。并且由于Linux内核项目的Makefile无法被CLion正确识别,所以无法使用CLion自带的集成工具,比如构建用的小锤子,所以不必配置什么远程工具链

        但是配置远程工具链时可以顺带建立部署,一举两得,那么就配置远程工具链


2,配置远程工具链:

        配置过程较为简单,先进入如下界面【设置构建、执行、部署工具链】

        然后点击【凭据】那一行最右边的设置符号,进入下述界面。然后先点击左上角的“+”,字后在右边填上主机用户名,最后测试连接。

        理论上信息没有填错,并且此时虚拟机是开着的状态,那么测试连接时就会出现连接成功的提示信息

        配置完成后,不要忘记点击确定。


3,修改路径(可选)

        一般来说,我们会把Linux项目目录放在用户下的某个路径,而不是根路径,所以可以把远程连接的根路径改为Linux项目路径

        如果前面配置工具链正常的话,会在下面的【部署】里出现如下信息,此时你可以把根路径修改为自己项目的路径,以便下次打开CLion时会自动进入当前目录

四、基础使用  

1,文件栏:     

        配置完成后,还是这样的大白界面,但此时你会发现右侧会多一个远程主机

        点击后就会出现项目的文件列表

        但这样看起来并不舒服,同时由于不在本地(主机)开发,所以本地的项目也就没有什么作用了。此时,你可以把本地的项目栏收起来,然后把远程主机栏移动到左边。

        右击远程主机栏,即可出现移动选项

        移动后,就出现了以下界面,此时如果你双击任何一个文件,就会在屏幕右边出现,与本地开发没有什么区别


2,终端:

        此时可以右击项目目录,创建SSH会话,其实就是创建一个Linux的终端

        下面就会出现一个Linux终端

五、补充

        前面主要讲的是使用终端,在Linux开发中,有时也可能在本地开发,然后把工程上传同步到Linux里。

        这时,需要用到本地项目

        然后右键项目的根目录,我这里的项目目录名是linux。然后下面会有部署这个选项,部署的子选项中,有上传、下载、同步等选项。

        如果你需要在本地开发,那么可以把Linux项目下载下来,之后如果想同步的话,编辑器上方会出现相应的提示

参考博客

clion连接本地虚拟机linux开发_虚拟机远程连接clion-CSDN博客

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【MySQL】数据库基础认识
  • 分区与分桶
  • PlayerPerfs-不同平台的存储位置
  • 最大似然估计,存在即合理
  • Python自动化测试中替代Seleium库的解决方案
  • JSONC:为JSON注入注释的力量
  • 手把手教你CNVD漏洞挖掘 + 资产收集
  • 最新版电子发票样式html+css--普通发票+增值发票
  • Java+Spring Cloud +UniApp 智慧工地源码,用户PC端、移动端数据同步,支持多端展示
  • Recorder录音插件使用日记
  • 【linux进程】深度理解进程--什么是进程什么是pcb进程创建
  • 【Python 基础学习笔记】文件的基础操作
  • cmake查看 编译信息里面的详细的gcc/g++的编译参数
  • 在Gin框架中实现Token令牌认证
  • CSS的盒子模型(Box Model)
  • (ckeditor+ckfinder用法)Jquery,js获取ckeditor值
  • 4月23日世界读书日 网络营销论坛推荐《正在爆发的营销革命》
  • Android开源项目规范总结
  • Angular2开发踩坑系列-生产环境编译
  • Flannel解读
  • V4L2视频输入框架概述
  • vue-cli3搭建项目
  • windows下使用nginx调试简介
  • 包装类对象
  • 笨办法学C 练习34:动态数组
  • 从setTimeout-setInterval看JS线程
  • 对JS继承的一点思考
  • 我建了一个叫Hello World的项目
  • ​VRRP 虚拟路由冗余协议(华为)
  • # Java NIO(一)FileChannel
  • #07【面试问题整理】嵌入式软件工程师
  • #HarmonyOS:Web组件的使用
  • #每日一题合集#牛客JZ23-JZ33
  • (02)Cartographer源码无死角解析-(03) 新数据运行与地图保存、加载地图启动仅定位模式
  • (4)(4.6) Triducer
  • (4)logging(日志模块)
  • (el-Transfer)操作(不使用 ts):Element-plus 中 Select 组件动态设置 options 值需求的解决过程
  • (分享)自己整理的一些简单awk实用语句
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (附源码)springboot电竞专题网站 毕业设计 641314
  • (附源码)ssm基于jsp的在线点餐系统 毕业设计 111016
  • (附源码)ssm教材管理系统 毕业设计 011229
  • (三)Pytorch快速搭建卷积神经网络模型实现手写数字识别(代码+详细注解)
  • (转)负载均衡,回话保持,cookie
  • .NET DevOps 接入指南 | 1. GitLab 安装
  • .net on S60 ---- Net60 1.1发布 支持VS2008以及新的特性
  • .NET Standard、.NET Framework 、.NET Core三者的关系与区别?
  • .NET导入Excel数据
  • [<事务专题>]
  • [AIGC] 开源流程引擎哪个好,如何选型?
  • [Android] Upload package to device fails #2720
  • [BZOJ 1032][JSOI2007]祖码Zuma(区间Dp)
  • [BZOJ2850]巧克力王国
  • [C/C++]数据结构 堆的详解
  • [codeforces] 25E Test || hash