VScode调试C/C++项目调试多个C++程序makefile

简介: VScode调试C/C++项目调试多个C++程序makefile

VScode调试C/C++项目调试包含多个C++程序使用makefile编译

最近做了一个小的c项目,其中包含cpp,c,h文件,一下子不知道怎么调试,怎么单步运行。这里简单总结一下自己学习的一些傻瓜式调试方法。

首先我们假设我们的项目有三个文件main.cpp、solution.cpp、solution.h

main.cpp

#include "solution.h"
int main()
{
    Solution test;
    test.display();
    return 0;
}

solution.cpp

#include<iostream>  
#include "solution.h" 
void Solution::display()
{
     std::cout << "HI!" << std::endl;
}

solution.h

class Solution
{
    public : 
    void display();
};

打开我们的VScode 对应的代码文件夹

首选需要自动生成一个.vscode文件夹

点到main.cpp的编辑器,我们按ctrl+shift+D ,或者点击旁边第4个的按钮运行和调试

选择GDB就好了

g++也选第一个就好了

然后会报出错误,我们取消

点击左边第一个按钮,可以看到我们的文件列表里面生成了一个.vscode文件,里面有两个json文件

我们创建一个Makefile文件,大小写都行

main : main.o solution.o
  g++ -o main main.o solution.o 
#注意前面必须是tab,不能是空格
main.o : main.cpp solution.h
    g++ -g -c main.cpp
solution.o : solution.h solution.cpp
    g++ -g -c solution.cpp
clean :
    rm main.o solution.o main

这儿复制的话容易出错,每个g++前面都是制表符号Tab,不是空格,建议把原来的删掉,再按Tab,不然后面的make操作可能会出错

我们点击tasks.json

改一下如图所示,把原来的注释掉,或删掉,替换成下面的代码

"command": "make",
            "args": [
                "-C",
                "${workspaceFolder}",
                "main",//这儿注意名字
            ], //改一下这上面的

接着我们就可以调试main.cpp文件了,在main函数中打个断点

按F5进入调试,程序就会运行到断点位置

接下来按F11,F10就可以单步运行

另外写一个功能

假如要带参数去调试,就是比如你终端执行main函数时用./main 10000

我们也可以把参数输入进去调试

在我们的launch.json文件中

找到"args"这一项

把我们的10000以字符串的形式放进去,这样,再调试就是带参数的了

目录
相关文章
|
4月前
|
前端开发 数据处理 Android开发
Flutter前端开发中的调试技巧与工具使用方法,涵盖调试的重要性、基本技巧如打印日志与断点调试、常用调试工具如Android Studio/VS Code调试器和Flutter Inspector的介绍
本文深入探讨了Flutter前端开发中的调试技巧与工具使用方法,涵盖调试的重要性、基本技巧如打印日志与断点调试、常用调试工具如Android Studio/VS Code调试器和Flutter Inspector的介绍,以及具体操作步骤、常见问题解决、高级调试技巧、团队协作中的调试应用和未来发展趋势,旨在帮助开发者提高调试效率,提升应用质量。
97 8
|
5月前
|
存储 程序员 编译器
简述 C、C++程序编译的内存分配情况
在C和C++程序编译过程中,内存被划分为几个区域进行分配:代码区存储常量和执行指令;全局/静态变量区存放全局变量及静态变量;栈区管理函数参数、局部变量等;堆区则用于动态分配内存,由程序员控制释放,共同支撑着程序运行时的数据存储与处理需求。
304 22
|
5月前
|
前端开发 JavaScript 数据库
VSCode编程助手工程能力体验报告(一):通义灵码 - 帮你高效切入新项目、编码和提升质量
我是一位软件工程师,用通义灵码个人版vscode插件的workspace做项目分析和复盘,对比之前没有灵码,现在提效了80%,本文介绍了具体的使用流程。
1048 2
|
5月前
|
Ubuntu Linux 编译器
Linux/Ubuntu下使用VS Code配置C/C++项目环境调用OpenCV
通过以上步骤,您已经成功在Ubuntu系统下的VS Code中配置了C/C++项目环境,并能够调用OpenCV库进行开发。请确保每一步都按照您的系统实际情况进行适当调整。
1093 3
|
5月前
|
JavaScript Linux 网络安全
VS Code远程调试Nodejs项目
VS Code远程调试Nodejs项目
|
5月前
|
Linux C++
Linux c/c++之makefile的基础使用
Linux下C/C++项目中makefile的基本使用,包括基础、进阶和高级用法,以及如何创建和使用makefile来自动化编译过程。
62 0
Linux c/c++之makefile的基础使用
|
5月前
|
Linux C语言 C++
vsCode远程执行c和c++代码并操控linux服务器完整教程
这篇文章提供了一个完整的教程,介绍如何在Visual Studio Code中配置和使用插件来远程执行C和C++代码,并操控Linux服务器,包括安装VSCode、安装插件、配置插件、配置编译工具、升级glibc和编写代码进行调试的步骤。
687 0
vsCode远程执行c和c++代码并操控linux服务器完整教程
|
6月前
|
开发框架 .NET C#
VSCode开发.net项目时调试无效
【9月更文挑战第22天】在使用 VSCode 开发 .NET 项目时遇到调试问题,可从项目配置、调试配置、调试器安装、运行环境、日志和错误信息等方面排查。确认项目类型及文件配置,检查 `launch.json` 文件及配置项,确保调试器扩展已安装并启用,验证 .NET 运行时版本和环境变量,查看 VSCode 输出窗口和项目日志文件,检查权限及代码错误。若问题仍未解决,可查阅官方文档或社区论坛。
151 4
|
6月前
|
C++
【C++基础】程序流程结构详解
这篇文章详细介绍了C++中程序流程的三种基本结构:顺序结构、选择结构和循环结构,包括if语句、三目运算符、switch语句、while循环、do…while循环、for循环以及跳转语句break、continue和goto的使用和示例。
102 2
|
10月前
sublime和vscode 推荐安装的插件
sublime和vscode 推荐安装的插件
118 0