VS2022远程连接调试编译Linux环境下的C++代码

工具:VS2022

虚拟机:RHEL 8.0

一、下载必要工具

1.VS2022组件安装 

打开VS2022Installer,点击修改下载必要工具。

选择Linux 和嵌入式开发,然后点击右下角的修改!

等待安装........

安装完成后,创建Linux项目,选择如图所示的模板!

2.虚拟机必要组件安装 

验证是否安装ssh

验证是否安装make

验证是否安装gdb

如果未安装,以下是安装必要组件的步骤!

在 CentOS 8/RHEL 8 上安装 ssh 服务器

如何在 RHEL 8 中安装 gdb

 Linux下安装make: 一步步搞定!(linux下安装make) – 后浪云

二、配置项目

        如果有服务器的就用服务器配置ssh进行远程连接,这里跳过不讲。没有服务器的,可以使用虚拟机搭建linux系统去配置ssh然后进行远程连接,这里用虚拟机做例子。

1.前期准备 

启动虚拟机,查看其IP地址。

主机查看是否能ping通虚拟机

以上步骤验证成功后,开始下一步。

第一步的创建项目完成后,需要配置远端Linux连接

2.配置远端Linux连接

点击工具——>选项——>跨平台——>连接器管理

继续点击右侧的添加按钮,主机名填虚拟机的IP地址,用户名和密码填登录虚拟机的账号和密码

填完之后点连接,可以看到新增一个SSH连接选项。

可以选中连接后,点验证按钮,查看是否连接成功。

完成后点确定即可!

接下来配置远程生成!

3.配置远程生成! 

右键项目,点击属性!

配置远程生成后的页面 ,命令行写入rm -rf bin obj

远程生成窗口配置,按如下图所示。

配置完成后,点确定!

4.Debug的版本切换

因为我们刚才配置的是Debug x64的,下面我们要将Debug的版本切换到x64

点击配置管理器 

点击平台,切换到x64.

点击关闭,运行查看是否修改正确,这里报错和失败都是正常,因为还没配完。

 如果Debug x64则说明正确。

5.配置makefile文件

在项目底下,新建makefile文件(无后缀名),外面新建txt文件,删掉后缀就行

然后添加现有项,选中makefile文件即可

 

 添加完成后,如下图所示

        编写makefile文件内容(这里只做简单编写,关于具体的原理,可自行百度),但做个解释all下面的指令会发送到虚拟机执行,其实就是个编译命令。

all:g++ -g clone.cpp -o main 
clean:

编写完成后保存即可。

        一般来说到这,便可以直接点击运行即可了,但本人在此还遇到一个问题,就是代码文件成功复制到虚拟机,但是无法在VS2022调试远端代码,报错显示gdb服务未连接,以下是我的解决方案。 

右键项目——>点击属性

点击调试,关键是程序和调试路径这两个地方,程序的路径要给它导向远端linux的编译后可执行文件的路径,而调试程序路径也就是远端Linux的gdb路径。 关于程序的值,一般都是在家目录下你的项目目录下,而调试程序路径可以通过whereis gdb来获取,如下图所示,取第一个即可。

三、测试

 设置断点,点击运行。

出现以上断点符号,则表示你已经配置成功了,可以快乐的开始敲代码了! 

 四、结语

        如果有时候遇到以下这种make *** 没有干嘛干嘛的报错,可以点击生成——>重新生成解决方案,即可解决该报错(前提是你前面的配置远端生成没啥问题)

        还有如果你想在同一个项目里,编译运行不同的main函数,又不想覆盖修改原来的文件,那你可以新建一个cpp文件,再写一个main函数,只不过要修改makefile里的指令,其实这就是在linux里编译的cpp文件指令,写到makefile文件里,让VS2022帮你跑而已。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/465487.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI笔筒操作说明及应用场景

AI笔筒由来: 在快节奏的现代办公环境中,我们一直在寻找既能提升效率、增添便利,又能融入企业文化、展现个人品味的桌面伙伴。为此,我们特推出专为追求卓越、注重细节的您设计的AI笔筒礼品版,它集高科技与实用性于一身…

爱普生 SG–WriterⅡ 石英可编程手工烧录器

在电子制造与研发的复杂世界中,爱普生 SG–WriterⅡ 石英可编程手工烧录器犹如一把神奇的钥匙,开启了石英晶振编程的无限可能,为众多领域的电子设备注入了精准与稳定的灵魂。 作为手工烧录器,SG–WriterⅡ 独具特色。在当今多样化…

数据库->索引

目录 一、索引是什么 二、索引的数据结构 1.HASH 2.二叉搜索树 3.N叉树(B树) 4.B树 5.B树与B树的区别 三、MYSQL的页 1.页文件头与页文件尾 2.页主体 3.页目录 4.数据页头 四、B在MYSQL索引中的应用 1.应用 2.计算三层树⾼的B树可以存放多少条记录 五、索引分类…

mongodb 按条件进行备份和恢复

在宝塔面板环境下,可以在定时任务设置备份mongodb但是存在缺陷,mongodb如果存储日志,一定时间后会特别巨大,全量备份会导致服务器卡死并很快耗尽磁盘空间,按一定的条件对进行,按天备份数据是必须的。我们用…

从SRE视角透视DevOps的构建精髓

SRE 侧重系统稳定性,DevOps 强调开发运维协作。SRE 实践助力DevOps,提升系统稳定性与团队协作效率。 SRE 运用软件工程的原理,将系统管理员的手工任务自动化,负责运维由系统组件构成的服务,确保服务稳定运行。SRE职责涵…

【数据库】elasticsearch

1、架构 es会为每个索引创建一定数量的主分片和副本分片。 分片(Shard): 将索引数据分割成多个部分,每个部分都是一个独立的索引。 主要目的是实现数据的分布式存储和并行处理,从而提高系统的扩展性和性能。 在创建索…

深度学习基础知识-编解码结构理论超详细讲解

编解码结构(Encoder-Decoder)是一种应用广泛且高效的神经网络架构,最早用于序列到序列(Seq2Seq)任务,如机器翻译、图像生成、文本生成等。随着深度学习的发展,编解码结构不断演变出多种模型变体…

spark-on-k8s 介绍

spark-on-k8s 介绍 摘要 最近一段时间都在做与spark相关的项目,主要是与最近今年比较火的隐私计算相结合,主要是在机密计算领域使用spark做大数据分析、SQL等业务,从中也了解到了一些spark的知识,现在做一个简单的总结&#xff…

探索PickleDB:Python中的轻量级数据存储利器

文章目录 探索PickleDB:Python中的轻量级数据存储利器1. 背景:为什么选择PickleDB?2. PickleDB是什么?3. 如何安装PickleDB?4. 简单的库函数使用方法创建和打开数据库设置数据获取数据删除数据保存数据库 5. 应用场景与…

【华硕天选5开机黑屏只有鼠标,调用资源管理器也无法黑屏状态的一种解决方式】

华硕天选5开机黑屏只有鼠标,调用资源管理器也无法黑屏状态的一种解决方式 1.问题描述2.解决方法3.重启如下图 1.问题描述 华硕天选5开机黑屏只有鼠标,调用资源管理器(ctrlalt.)也无法黑屏状态。 2.解决方法 ctrl shitf10 就能正…

【详细 工程向】基于Smart3D的五镜头相机三维重建

数据部分: 数据要求 (1)每条行带至少从 3 个不同的视角进行拍摄。 (2)相邻相片之间的重叠度通常要求大于三分之二。 (3)不同拍摄视角之间夹角应该少于 15 度。 (4)通…

使用 RabbitMQ 有什么好处?

大家好,我是锋哥。今天分享关于【使用 RabbitMQ 有什么好处?】面试题。希望对大家有帮助; 使用 RabbitMQ 有什么好处? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 RabbitMQ 是一种流行的开源消息代理,广…

【自用】时序数据库、时序数据库,IOTDB官方文档笔记

什么叫时序数据? 万物互联的今天,物联网场景、工业场景等各类场景都在进行数字化转型,人们通过在各类设备上安装传感器对设备的各类状态进行采集。如电机采集电压、电流,风机的叶片转速、角速度、发电功率;车辆采集经…

线程池执行流程

线程池执行流程 1、如果当前在运行的线程数不超过核心线程数,那么则创建新的核心线程去执行任务 2、如果当前在运行的线程数超过了核心线程数,那么就将任务加入到队列中去 3、如果任务队列已经满了,那么就创建非核心线程去执行当前任务 4…

【google play】使用Java接入谷歌支付流程

【google play】使用Java接入谷歌支付流程 整体流程准备工作Java实现 整体流程 客户端向Java服务端发起支付,生成预订单,将生成的订单号返回给客户端;客户端向Google发起支付(传入本地服务器生成的订单号)&#xff1b…

实现GUI界面中的logo图片的编码与隐藏

实现GUI界面中的logo图片的编码与隐藏 一、问题描述二、解决办法 一、问题描述 利用PyQt5编写的GUI界面,有时候需要我们添加自定义的图片来作为UI界面的logo,在源码使用时,logo的形式一般不影响使用,但是当我们需要将软件进行打包…

2024最新的开源博客系统:vue3.x+SpringBoot 3.x 前后端分离

本文转载自:https://fangcaicoding.cn/article/54 大家好!我是方才,目前是8人后端研发团队的负责人,拥有6年后端经验&3年团队管理经验,截止目前面试过近200位候选人,主导过单表上10亿、累计上100亿数据…

sqli-labs(第一关)

前言: 各位,我准备最近把靶场练一下,看看别人的payload,跟着别人学一下怎么实战。我用的靶场是sqli-labs。 正文: 第一关: (1)找注入点: 刚开始界面是这样的&#xf…

LabVIEW气体检测系统

随着工业化进程的加速,环境污染问题愈加严峻,尤其是有害气体的排放对人类生存环境构成了严重威胁。为了更好地监测这些有害气体,开发一个高效、准确且易于操作的气体检测系统显得尤为重要。LabVIEW软件开发的气体检测系统,采用激光…

盘点10款录音转文字工具,帮你开启高效记录。

如果你有课堂录音或者是一些网课内容像转成文字笔记;或者是想将会议录音转换成书面的文稿;又或者是想将访谈音频或者是商务谈判转换成文字稿件;那就千万要收藏这些录音转文字的工具,它们的功能专业,转换准确且效率很高…