• linux学习记录.6.vscode调试c makefile


    参考

    https://www.cnblogs.com/lidabo/p/5888997.html

     task有更新,不能使用文章的代码。

    多文件

    终端

    touch main.c hw.c hw.h

    vscode hw.c

    Vscode

    打开文件夹

     编写三个项目文件

    1 /*hw.c*/
    2 #include "hw.h"
    3 
    4 void print()
    5 {
    6     printf("Hello World!
    ");
    7 }
    1 /*hw.h*/
    2 #include <stdio.h>
    3 
    4 void print();
    1 /*main.c*/
    2 #include "hw.h"
    3 
    4 int main()
    5 {
    6     print();
    7 
    8     return 0;
    9 }

    此时使用

    在终端直接使用gcc

    gcc main.c hw.c hw.h

    生成 a.out 和 hw.h.gch

    使用make

    在项目目录下建立makefile    touch makefile

    编写makefile文件

    build : main.o hw.o 
        gcc -o build main.o hw.o
    main.o : main.c hw.h
        gcc -g -c main.c
    hw.o : hw.c hw.h
        gcc -g -c hw.c
    clean : 
        rm main.o hw.o 

    PS:clean下的代码需要使用 make clean 才调用

      -g :调试使用

      -c  :仅编译(Compile),不连接 (Make)

       -o :输出文件名

     VS code 调试 配置

    {
        /*launch.json*/
        // 使用 IntelliSense 了解相关属性。 
        // 悬停以查看现有属性的描述。
        // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
        "version": "0.2.0",
        "configurations": [
            { 
                "name": "(gdb) Attach",
                "type": "cppdbg",
                "request": "attach",
                "program": "${workspaceFolder}/build",
                "processId": "${command:pickProcess}",
                "MIMode": "gdb",
                "setupCommands": [
                    {
                        "description": "Enable pretty-printing for gdb",
                        "text": "-enable-pretty-printing",
                        "ignoreFailures": true
                    }
                ]
            },
            {
                "name": "(gdb) Launch",
                "type": "cppdbg",
                "request": "launch",
                "program": "${workspaceFolder}/build",
                "args": [],
                "stopAtEntry": false,
                "cwd": "${workspaceFolder}",
                "environment": [],
                "externalConsole": true,
                "MIMode": "gdb",
                "setupCommands": [
                    {
                        "description": "Enable pretty-printing for gdb",
                        "text": "-enable-pretty-printing",
                        "ignoreFailures": true
                    }
                ],
                
                "preLaunchTask": "make"    //add
                
            }
    
        ]
    }
    {
        /*task.json*/
        // See https://go.microsoft.com/fwlink/?LinkId=733558
        // for the documentation about the tasks.json format
        "version": "2.0.0",
        "tasks": [
            {
                "label": "make",
                "type": "shell",
                "command": "make",
                "args": []
                
            }
            
        ]
    }

    ctrl + shift + b 编译

    设置断点

    f5 开始调试

    弹出终端 显示输出。

  • 相关阅读:
    Centos7下安装7za 及7za常用命令
    n2n搭建手记-2-V2
    n2n搭建手记-1-V1
    centos 7 下发送邮件设置
    Centos7 下安装mysql
    C#设计模式之11:命令模式
    asp.net core实时库:SignalR(1)
    asp.net core 排序过滤分页组件:sieve(2)表达式树的复习
    asp.net core 排序过滤分页组件:sieve
    linux上面sqlserver数据库的操作
  • 原文地址:https://www.cnblogs.com/protogenoi/p/9162549.html
Copyright © 2020-2023  润新知