Windows 11系统基于VScode、CMake搭建C/C++编译环境

目录

一.安装VScode、CMake、MinGW

二.VScode安装插件

三.创建一个文件夹用于测试

四.基于CMake编译测试

五.配置launch.json和tasks.json文件用于调试

一.安装VScode、CMake、MinGW

自行安装

二.VScode安装插件

三.创建一个文件夹用于测试

项目结构:

calc.h

#ifndef CALC_H
#define CALC_H

#include <iostream>
using namespace std;
void add(int a,int b);
void mul(int a,int b);
void divi(int a,int b);
void sub(int a,int b);

#endif //CALC_H

add.cpp

#include "calc.h"

void add(int a,int b)
{
    cout <<"a+b="<<a+b<<endl;
}

divi.cpp

#include "calc.h"

void divi(int a,int b)
{
    cout <<"a÷b="<<a/b<<endl;
}

mul.cpp

#include "calc.h"

void mul(int a,int b)
{
    cout <<"a*b="<<a*b<<endl;
}

sub.cpp

#include "calc.h"

void sub(int a,int b)
{
    cout <<"a-b="<<a-b<<endl;
}

main.cpp

#include <iostream>
#include "calc.h"

int main()
{
    cout<<"hello calculator "<<endl;
    int a = 10;
    int b = 5;
    cout<<"a="<<a<<", b="<<b<<endl;
    add(a,b);
    mul(a,b);
    sub(a,b);
    divi(a,b);
    
}

基于g++编译测试:

1.在test文件夹下打开终端输入命令,生成.exe文件

g++ ./src/*.cpp main.cpp -o calc -I ./include/

2.执行.exe文件

./calc.exe

四.基于CMake编译测试

1.在test目录下创建CMakeLists.txt

CMakeLists.txt

#设置cmake最低版本限制
cmake_minimum_required(VERSION 3.10)
#设置项目名称
project(calc)
#设置包含的头文件目录,可设置多个目录,目录间用空格隔开
include_directories(include)
#aux_source_directory(dir VAR),搜索dir目录下的源文件,并将结果列表存储在变量VAR中
aux_source_directory(src SRC_DIR)
aux_source_directory(. CUR_DIR)
#add_executable(target src),指定使用源文件生成可执行程序target,${变量名}表示取变量值
add_executable(calc ${SRC_DIR} ${CUR_DIR})

2.在test目录下创建build文件夹,进入build目录执行命令:

cmake ..

可以看到build目录下生成了一系列文件,其中包括Makefile文件

4.输入命令

mingw32-make.exe

可以看到生成了calc.exe文件,运行可得到同样效果

五.配置launch.json和tasks.json文件用于调试

1.点击窗口右上角的齿轮,选择点亮选项,会在test目录下生成一个.vscode文件夹,该目录下生成了两个文件launch.json和tasks.json

tasks.json

{
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: gcc.exe 生成活动文件",
            "command": "E:\\tools\\QT\\QT\\Tools\\mingw1310_64\\bin\\gcc.exe",
            "args": [
                "-fdiagnostics-color=always",
                "-g",
                "${file}",
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": "build",
            "detail": "调试器生成的任务。"
        }
    ],
    "version": "2.0.0"
}

launch.json

{
    "configurations": [
        {
            "name": "C/C++: gcc.exe 生成和调试活动文件",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "E:\\tools\\QT\\QT\\Tools\\mingw1310_64\\bin\\gdb.exe",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                },
                {
                    "description": "将反汇编风格设置为 Intel",
                    "text": "-gdb-set disassembly-flavor intel",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "C/C++: gcc.exe 生成活动文件"
        }
    ],
    "version": "2.0.0"
}

修改tasks.json和launch.json的内容

tasks.json

{
    "version": "2.0.0",
    "options": {
        "cwd": "${workspaceFolder}/build/" //进入build目录下
    },

    "tasks": [
        {
            //task1:使用cmake命令生成Makefile文件
            "label": "cmake", 
            "type": "shell", 
            "command": "cmake",
            "args": [
                ".."
            ]
        },
        {
            //task2:使用mingw32-make.exe命令基于Makefile文件构建当前项目
            "label": "make",
            "group":{
                "kind":"build",
                "isDefault":true
            },
            "command": "mingw32-make.exe",
            "args":[
            ]
        },
        {
            //任务集合:说明要执行的任务,作为 launch.json中 preLaunchTask配置项
            "label":"Build my project",
            "dependsOn":[
                "cmake",
                "make"                
            ]
        }
    ]
}

launch.json

{
    "configurations": [
        {
            "name": "C/C++: gcc.exe 生成和调试活动文件",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/build/calc.exe",//对应tasks.json文件执行后生成的exe程序路径
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "E:\\tools\\QT\\QT\\Tools\\mingw1310_64\\bin\\gdb.exe",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                },
                {
                    "description": "将反汇编风格设置为 Intel",
                    "text": "-gdb-set disassembly-flavor intel",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "Build my project" //名称与tasks.json中任务集合的label相同
        }
    ],
    "version": "2.0.0"
}

2.json文件配置成功,在main.cpp加上断点,点击窗口左下角甲壳虫进行调试,

结果图:

参考:B站:爱编程的大丙

5. 基于CMake进行多文件调试_哔哩哔哩_bilibili

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

10710

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值