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.xdnf.cn/news/5199.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

详解Java之Spring MVC篇二

目录 获取Cookie/Session 理解Cookie 理解Session Cookie和Session的区别 获取Cookie 获取Session 获取Header 获取User-Agent 获取Cookie/Session 理解Cookie HTTP协议自身是“无状态”协议,但是在实际开发中,我们很多时候是需要知道请求之间的…

基于SSM的学生考勤管理系统的设计与实现

项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下,你想解决的问…

鸿萌数据迁移服务: 完善的数据迁移策略, 是数据迁移项目成功的保障

天津鸿萌科贸发展有限公司从事数据安全服务二十余年,致力于为各领域客户提供专业的数据存储、数据恢复、数据备份、数据迁移等解决方案与服务,并针对企业面临的数据安全风险,提供专业的相关数据安全培训。 鸿萌数据迁移业务为众多企业顺利高效…

穿越文化与时空的回响——从廖问洁《红豆诗词选》看当代人文情怀

穿越文化与时空的回响 ——从廖问洁《红豆诗词选》看当代人文情怀 在快节奏的现代生活中,我们时常感到身心的疲惫,渴望找到一种能够洗涤内心的方式。而廖问洁的《红豆诗词选》就如同一股清泉,为我们带来了心灵的洗礼和慰藉。 这位来自94年的…

机器学习—TensorFlow实现

继续运行手写数字识别的示例,识别此图像,一个0还是1,我们所使用的是神经网络架构,其中有一个输入X,然后是第一个隐藏层,有25个单位,第二个隐藏层,有15个单元,然后一个输出…

外包干了两年,快要废了。。。。

先说一下自己的情况,普通本科,在外包干了2年多的功能测试,这几年因为大环境不好,我整个人心惊胆战的,怕自己卷铺盖走人了,我感觉自己不能够在这样蹉跎下去了,长时间呆在一个舒适的环境真的会让一…

基于backtrader实现人工智能LOF的择时,optstrategy实现最优参数搜索(年化从9%提升至15.4%)

原创内容第695篇,专注量化投资、个人成长与财富自由。 今日策略 今天的策略是基于backtrader实现人工智能LOF的择时,通过backtrader的参数优化功能,找到最优参数。 策略主体: 策略有三个参数,一是动量周期&#xff…

autodl怎么清理数据盘垃圾缓存

首先进入到root/autodl-tmp文件夹下,然后执行这个命令 du -h --max-depth1 .查看当前目录下各个子目录占用的内存 可以看到,./.Trash-0 目录下有太多垃圾了。清理 ./.Trash-0 目录,可以使用以下命令来删除该目录中的所有内容 rm -rf ./.Tr…

ctfshow(162)--文件上传漏洞--远程文件包含

Web162 进入界面: 思路 先传个文件测试一下过滤: 过滤了特别多符号,注意过滤了点. 我们的思路还是要先上传.user.ini文件: //修改前 GIF89a auto_prepend_fileshell.png//由于过滤了点,所以修改为 GIF89a auto_prepend_file…

开源IM即时通讯源码 / Java仿微信即时通讯APP源码 + 红包 + 客服 + 禁言 / WebSocket + uniapp框架开发

即时通讯应用已经成为现代社交和工作环境中的重要工具,而IM(即时通讯)系统的设计与开发也逐渐成为开发者关注的重点。本文将介绍一个基于Java开发的开源IM即时通讯系统,模拟微信的即时通讯功能,涵盖了红包、客服、禁言…

拒绝事后背锅:测试项目中的风险管理一定要知道

在博主的公司中,测试经理除了要管理产品线的质量保障和日常部门事务工作外,另一项比较重要的就是测试项目全流程的管理。 今天不聊整体的测试项目流程如何开展,而是想聊一聊在同行中比较高频出现的一个字眼:风险管理。 什么是风…

4.1 WINDOWS XP,ReactOS对象与对象目录----1

系列文章目录 文章目录 系列文章目录4.1 对象与对象目录OBJECT_HEADERObpLookupEntryDirectory()NtCreateTimer() 4.1 对象与对象目录 “对象(Object)”这个词现在大家都已耳熟能详了,但是对象到底是什么呢?广义地说,对象就是“目标”,行为…

数据结构——栈

栈 1. 栈的概念和结构2. 栈的实现2.1 原型声明2.2 初始化和销毁2.3 入栈 出栈2.4 取栈顶数据2.5 判空2.6 获取数据个数 3. 总结 🔥 博客主页: 偷心编程 🎥 系列专栏: 《Java学习》 《C语言学习》 《数据结构C语言版》 ❤️ 感谢大家点赞👍收…

谷歌浏览器中编辑并重发请求

文章目录 1、直接重发请求2、修改传参后重发请求3、可能的报错 有时候,需要调整请求参数后,重新发送请求,查看响应,从浏览器搬到Postman太繁琐,可直接在浏览器进行编辑并重发 1、直接重发请求 F12 > Network >…

day19作业

注册登录 #include "log.h" void reg() {char name[20],pwd[20];printf("请输入账号:");fgets(name,sizeof(name),stdin);printf("请输入密码:");fgets(pwd,sizeof(pwd),stdin);//name[strlen(name)-1]\0;printf("账…

[LitCTF 2023]ez_XOR

文件无壳 拖入ida 查看主函数伪c代码 继续跟进xor函数 函数遍历输入的字符串 Str,对每个字符执行异或操作,并将字符与 3 * a2 异或 所以题目的加密过程是将字符串E}J]OrQF[V8zV:hzpV}fVF[t与3异或 写出脚本 def XOR_encrypt(input_str, a2):encrypted_…

[数据结构从小白到大牛]第五篇:3分钟带你吃透双链表并用C语言模拟实现

目录 1->前言 2->链表的概念和结构 2.1链表概念 2.2->带头双向循环链表结构 3->模拟实现带头双向循环链表 3.1定义链表结点 struct ListNode 3.2创建链表结点 CreateLTNode 函数 3.3链表初始化函数 ListInit函数 3.4链表打印函数 ListPrint函数 3.5链表…

心觉:如果做不到“道生一”,能做到“一生道”也不得了

Hi,我是心觉,带你用潜意识化解各种焦虑、内耗,建立无敌自信;教你财富精准显化的实操方法;关注我,伴你一路成长! 每日一省写作222/1000天 想学的东西太多,想练的能力太多,想重塑的负…

基于BP神经网络的手写体数字图像识别

基于BP神经网络的手写体数字图像识别 摘要 在信息化飞速发展的时代,光学字符识别是一个重要的信息录入与信息转化的手段,其中手写体数字的识别有着广泛地应用,如:邮政编码、统计报表、银行票据等等,因其广泛地应用范围…

SpringBoot项目中获取resources下静态文件时遇到的坑

文章目录 问题解决方法1. 上传到服务器指定的文件夹下2. 使用ClassPathResource读取 问题 在项目中需要使用到静态图片,将静态图片放在resources文件夹下。 本地使用this.getClass().getResource()读取静态图片一切正常,成功读取到静态图片。但是将项目…