vscode连接远程服务器进行cmake调试

news2024/10/7 19:17:49

一、cmake安装

cmake

  1. cmake-3.17.4.tar.gz : https://cmake.org/files/v3.17/cmake-3.17.4.tar.gz
sudo apt-get install libssl-dev 
tar xvf cmake-3.17.4.tar.gz
cd cmake-3.17.4
./configure --prefix=/usr
make -j18 && sudo make install
  1. 测试
    在这里插入图片描述

二、配置

  1. 准备两个最简单的文件----main.cppCMakeLists.txt
#include <iostream>

using namespace std;

int main()
{
    cout << "Hello CMake" << endl;
    return 0;
}

CMakeLists.txt

cmake_minimum_required (VERSION 2.8.11)
project (test)

set(CMAKE_BUILD_TYPE DEBUG)
set(CMAKE_CXX_STANDARD 17)            //使用c++17标准
SET(CMAKE_CXX_COMPILER /usr/bin/g++-7)  //使用g++-7 编译
add_executable (test main.cpp)
  1. 在项目根目录下创建.vscode目录,放入以下两个文件

launch.json

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "gdb",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/build/test",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "build"
        }
    ]
}
  1. program文件是要调试的文件路径,最后的文件名和CMakeLists.txtadd_executable后的第一个名字相匹配。

tasks.json

{
    "options": {
        "cwd": "${workspaceFolder}/build"
    },
    "tasks": [
        {
            "label": "cmake",
            "command": "cmake",
            "args": [
                "-DCMAKE_BUILD_TYPE=Debug",
                ".."
            ]
        },
        {
            "label":"make",
            "command":"make"
        },
        {
            "label":"build",
            "dependsOn":[
                "cmake",
                "make"
            ]
        }
    ],
    "version": "2.0.0"
}

三、编译调试

  1. 点击下方的Build进行编译。
    在这里插入图片描述
  2. 在主函数里打断点,按F5开始调试
    注:会出现command not found: msbuild的错误,不用理会。
    在这里插入图片描述

四、工程下有多个cmake文件夹

如果一个工程下有多个cmake文件夹,类似如下该如何处理(test2和test3与test1的目录结构相同)。

在这里插入图片描述

解决方法

  1. .vscode文件夹下创建settings.json文件,内容如下
{
    "cmake.sourceDirectory": "${workspaceFolder}/test1",
    "cmake.autoSelectActiveFolder": true
}

这样就表示当前的工程在test1文件夹下。

  1. 如果每个工程生成的执行文件不同会给调试带来麻烦,因此在launch.json文件中将"program"改一个固定值,然后将每一个文件夹生成的可执行文件都改成这个值即可。

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

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

相关文章

如何找回删除的文件?数据恢复,看这几个方法

如果您的电脑出现了问题&#xff0c;或者是因为使用不当而删除了一些文件&#xff0c;那么您需要了解一下如何找回删除的文件。想要清理电脑文件数据&#xff0c;很多人会将其直接删除。其实这种做法是不可取的&#xff0c;因为这种做法可能会造成损失。如何找到已经删除的文件…

怎么把开源项目放到自己的github,gitee,gitea上

一、创建仓库&#xff08;大部分可以不填&#xff09; 二、删除.git文件夹 三、执行初始化命令&#xff08;初始出.git文件夹&#xff09; 在本地项目下执行命令 git init 四、与远程仓库建立关系 git remote add origin ssh://gitxx.xx.xx.xx:61022/shengbaitong/inst_ops…

IOC和DI入门案例

IOC案例 创建BookDao接口、BookDaoImpl类和BookService接口、BookServiceImpl类 1.BookDao package dao;public interface BookDao {public void save(); }2.BookDaoImpl类 package dao;public class BookDaoImpl implements BookDao{public void save(){System.out.printl…

Invisible Backdoor Attack with Sample-Specific Triggers 论文笔记

1. 论文信息 论文名称Invisible Backdoor Attack with Sample-Specific Triggers作者Yuezun Li&#xff08;香港大学&#xff09;出版社ICCV 2021pdf在线pdf 本地pdf代码TensorFlow简介提出了 sample-specific 以及 invisible 的 trigger。使用数字水印技术生成看不见的后门 …

MCE | 肿瘤微环境在癌症中的作用

在过去数十年中&#xff0c;通过使用免疫疗法、靶向疗法和联合方案&#xff0c;癌症治疗领域取得了很大的进步。但这些治疗方案中的绝大多数最终都无法治愈患者&#xff0c;甚至对治疗有显著初始反应的肿瘤也经常复发为耐药恶性肿瘤。另一方面&#xff0c;越来越多的证据表明&a…

A-Level经济例题解析及练习Budget Constraint

知识点&#xff1a;Budget Constraint例题 Question: Budget Constraint Hurley’s income: $1200, Prices: PF $4 per fish, PM $1 per mango A. If Hurley spends all his income on fish, how many fish does he buy? B. If Hurley spends all his income on mangos…

Java开发基础_04

六. 集合框架 #mermaid-svg-g9w5yNcJQzio5Xvm {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-g9w5yNcJQzio5Xvm .error-icon{fill:#552222;}#mermaid-svg-g9w5yNcJQzio5Xvm .error-text{fill:#552222;stroke:#55222…

【总结】Idea 编译maven项目报错NoSuchMethodError DefaultModelValidator

从网上git clone了一个项目&#xff0c;本地编译compile、打包package都没问题。 但是启动服务&#xff0c;启动不了&#xff0c;且查看Dependency Analyzer 没有任何依赖信息。执行Reimport时&#xff0c;报错如下。 错误信息 org.codehaus.plexus.component.repository.exc…

Git的简单使用

Git的简单使用一、关于版本控制1、文件的版本2、版本控制软件1.本地版本控制系统2.集中化的版本控制系统3.分布式的版本控制系统二、Git的简介1、什么是Git2、SVN的差异比较3、Git的记录快照4、Git中的三个区域5、使用Git的基本流程三、Git的基本操作1、配置Git1. 配置用户信息…

集合~List

List List集合概述和特点 List集合概述 有序集合&#xff08;也称为序列&#xff09;&#xff0c;用户可以精确控制列表中每个元素的插入位置。用户可以通过整数索引访问元素&#xff0c;并搜索列表中的元素与Set集合不同&#xff0c;列表通常允许重复的元素 List集合特点 …

【JavaSE】String类总结,StringBuilder、StringBuffer、String的区别讲解

文章目录String对象的构造String类的一些常用方法求字符串的长度字符串判空字符串对象的比较字符串对象的查找字符串对象的转化字符串对象的截取字符串对象的替换字符串对象的拆分字符串对象的大小写转换常用方法总结StringBuilder与StringBuffer字符串为什么不可变String Stin…

Alibaba架构师内部最新发布SpringCloud开发手册,Github限时开源

微服务是SOA之后越来越流行的体系结构模式之一&#xff01; 如果您关注行业趋势&#xff0c;就会发现,如今商业机构不再像几年前那样&#xff0c;开发大型应用程序&#xff0c;来管理端到端之间的业务功能&#xff0c;而是选择快速灵活的微服务。 通过微服务&#xff0c;架构师…

寒气难抵,跨境电商年底仍有一批卖家要出局!

2020年初的新冠疫情仍历历在目&#xff0c;跨境电商在这两年间也是经历了许多不同的波折和困难。从2020年到2022年&#xff0c;由于各国之间出于疫情防控等多方面的考虑&#xff0c;逐渐的增加贸易壁垒&#xff0c;致使跨境电商的物流成本大概增长了50%&#xff0c;物流成本占订…

UE4 回合游戏项目 22- 控制新角色

在上一节&#xff08;UE4 回合游戏项目 21- 添加多种类型的敌人&#xff09;基础上新添加一个玩家角色 效果&#xff1a; 步骤&#xff1a; 1.打开进阶游戏资源&#xff0c;解压“回合迁移_第七节&#xff08;只是新人物包&#xff09;” 2.解压后双击打开工程 3.选中“ziyuan…

免费查题接口系统

免费查题接口系统 本平台优点&#xff1a; 多题库查题、独立后台、响应速度快、全网平台可查、功能最全&#xff01; 1.想要给自己的公众号获得查题接口&#xff0c;只需要两步&#xff01; 2.题库&#xff1a; 查题校园题库&#xff1a;查题校园题库后台&#xff08;点击跳…

微信小程序 | 小程序开发

&#x1f5a5;️ 微信小程序专栏&#xff1a;小程序开发 初级知识 &#x1f9d1;‍&#x1f4bc; 个人简介&#xff1a;一个不甘平庸的平凡人&#x1f36c; ✨ 个人主页&#xff1a;CoderHing的个人主页 &#x1f340; 格言: ☀️ 路漫漫其修远兮,吾将上下而求索☀️ &#x1f…

51单片机学习笔记2 仿真器的使用及STC89Cxx简介

51单片机学习笔记2 仿真器的使用及STC89Cxx简介&#xff09;一、连接步骤1. 硬件连接2. 安装软件驱动3. 检查是否安装成功二、仿真步骤1. 打开一个51工程2. 选择仿真设备3. Settings设置4. Utilities设置5. 点击仿真三、连接开发板四、STC89Cxx单片机简介1. 单片机2. 51单片机3…

红黑树的插入与验证——附图详解

文章目录红黑树性质红黑树的插入前言寻找插入位置情况 1.0情况 1.1情况 1.2情况 1.3情况 2.0情况 2.1情况 2.2情况 2.3完整代码红黑树的检验验证代码和用例红黑树 上篇文章我们说到 AVL 树在新增 / 减少结点的时候会进行旋转以保持 AVL 树的高度平衡, 但是实际上在需要 频繁加…

【构建ML驱动的应用程序】第 2 章 :制定计划

&#x1f50e;大家好&#xff0c;我是Sonhhxg_柒&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流&#x1f50e; &#x1f4dd;个人主页&#xff0d;Sonhhxg_柒的博客_CSDN博客 &#x1f4c3; &#x1f381;欢迎各位→点赞…

【线程】多线程安全

考点&#xff0c;线程同步有哪些操作&#xff1a; 一、概念 如果一个函数能被多个线程同时调用且不发生竞态条件&#xff0c;则成为它是线程安全&#xff0c;也叫可重入函数。通俗地说就是多线程程序无论调度顺序怎么样都可以得到正确的结果&#xff0c;运行时程序不出错。可重…