vscode下cmake工程环境配置以及调试配置(c++)

1.准备工作

1.1MinGW的下载

MinGW将其托管到sourceforge上了,也可以前往sourceforge下载:https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/8.1.0/threads-posix/seh/?tdsourcetag=s_pctim_aiomsg

链接:https://pan.baidu.com/s/17QB1_ILBtAMf9Da1oTxT-A
提取码:2k6l
在这里插入图片描述
Version 指的是 gcc 的版本,如果没有特殊的需求,一般选择最高的版本号即可。
操作:在这个版本中,最高版本是 6.2.0 ,选中它即可。
在这里插入图片描述
Architecture 是指电脑系统是 32位 还是 64位,根据你的电脑系统做出对应选择。
操作:我的电脑系统是 64位 的,所以我选择了 x86_64,如果你是 32位 系统,则选择 i686 即可。
在这里插入图片描述
这个世界上只有两种操作系统,符合 posix 协议的,和 Windows 。如这个笑话所说的,如果你想要开发 Windows 程序,需要选择 win32 ,而开发 Linux、Unix、Mac OS 等其他操作系统下的程序,则需要选择 posix 。
在这里插入图片描述
异常处理在开发中非常重要,你在开发的过程中,大部分的时间会耗在处理各种异常情况上。如果你之前选择了 64位,则这里有两个异常处理模型供你选择,seh 是新发明的,而 sjlj 则是古老的。seh 性能比较好,但不支持 32位。 sjlj 稳定性好,支持 32位。
在这里插入图片描述
选择了 32位 后,则可以用 dwarf 和 sjlj 两种异常处理模型。同样的,dwarf 的性能要优于 sjlj ,可以它不支持 64位 。建议选择 dwarf 。

Build revision 默认就好.

1.2CMake的下载

网盘链接:https://pan.baidu.com/s/1_8CUg-0ckmGM-UWWNE8tYg
提取码:1kp6
CMake官网下载:下载导航->
在这里插入图片描述
MinGW 和 CMake下载完后需要配置系统环境变量,将MinGW和CMake下的bin目录添加进去即可,在cmd下输入 g++ --versioncmake --version有版本号输出说明MinGW ,CMake安装成功。

在vscode中安装插件, 下图所示都安装了吧

在这里插入图片描述

2 工程配置

2.1 新建一个总工程文件夹,并按下图建立多个文件夹

  1. 新建一个文件夹Cmake_test,用vscode打开
  2. 在文件夹下新建 .vscode 文件夹 和 source 文件夹,.vscode下存放配置文件,source下存放头文件和源文件,
  3. 在根目录下新建 CMakeLists.txt文件
    完成后 如图所示
    在这里插入图片描述

2.2 代码编写

先编写main.cpp 和swap.cpp
main.cpp其中代码为:

//main.cpp
#include<iostream>
#include "Lib/swap.h"
using namespace std;

int main(int argc, char **argv)
{
   int v1 = 100;
   int v2 = 200;
   cout << "Before:" << v1 << " " << v2 << endl;
   swap(v1,v2);
   cout << "After:" << v1 << ' ' << v2 << endl;
   cout << "cmake调试\n";
   system("pause");
   return 0;
}

swap.hswap.cpp 的代码为:

void swap(int &a, int &b);
#include "swap.h"

void swap(int &a, int &b)
{
    int temp;
    temp = a;
    a = b;
    b = temp;
}

CMakeLists.txt 的代码为:

cmake_minimum_required (VERSION 2.8.12)#规定cmake的最低版本要求
project(MySwap)#项目的名称,不一定和你的文件夹名称一样
set(CMAKE_BUILD_TYPE "Debug") #打断点调试代码必设置,Cmake默认是Release会导致断点失效
include_directories(${PROJECT_SOURCE_DIR}/source/Lib)#添加头文件的搜索路径
#要用的cpp文件有哪些地址就要添加源文件路径
aux_source_directory(./source SrcFiles)#将源文件列表写在变量SrcFiles中
aux_source_directory(./source/Lib SrcFiles)#工程项目较大,要创建多个模块
set(EXECUTABLE_OUTPUT_PATH  ${PROJECT_SOURCE_DIR}/build)#设置可执行文件输出路径
add_executable(main ${SrcFiles})#设置可执行文件的名称,make之后build目录下出现main.exe

2.3 编译,执行

2.3.1 懒人方法1

在cmake编译之前,先使用之前下载的MinGW配置一些cmake环境。安装好cmake后左边会有如图所示图标。
在这里插入图片描述
配置好后,发现会生成build文件,点击后生成的目录应该是这样的,bulid里面可能版本不一样生成的文件有些许差距
在这里插入图片描述
这是Cmake Tools工具帮你直接生成的,省去在终端cmake,之后直接点击vscode下方的 运行按钮 在这里插入图片描述
build目录下会生成一个 main.exe可执行文件,并且可在终端查看运行结果。

2.3.2 练手方法2

在编写完代码后,目录是这样的
在这里插入图片描述
之后开始操作,首先新建终端
在这里插入图片描述
建立build文件夹,再cd到build目录下
在这里插入图片描述
之后在终端处输入cmake ..,如果你电脑上装了vs20xx,可能会出现用MSVC生成makefile工程的情况
在这里插入图片描述
或者出现下面错误
在这里插入图片描述
出现上面两种错误都是使用命令 rm *, 选择全部删除之前的工程配置即可,再使用 cmake -G "MinGW Makefiles" ..代替cmake ..
在这里插入图片描述
出现用g++编译就ok,之后在终端输入 mingw32-make.exe, 回车就大功告成
在这里插入图片描述
最终生成的目录跟方法1一样
在这里插入图片描述

3 调试配置

3.1 新建tasks.json文件

按下图编辑一个tasks.json文件,编辑tasks.json文件的目的是即时更新代码会重新编译exe程序,以及省去终端的手动makefile的过程

{
	"version": "2.0.0",
	"options": {
		"cwd": "${workspaceFolder}/build"
	},
	"tasks": [
		{
			"type": "shell",
			"label": "cmake",
			"command": "cmake",
			"args": [
				".."
			]
		},
		{
			"label": "make",
			"group": {
				"kind": "build",
				"isDefault": true
			},
			"command": "mingw32-make.exe",	//windows下的命令
			"args": [

			]
		},
		{
			"label": "Build",
			//依赖于上面两个task命令
			"dependsOn":[
				"cmake",
				"make"
			]
		}
	]
}

3.2 新建launch.json文件

在这里插入图片描述
将生成的launch.json文件按照下列代码更改即可进行程序调试。

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "g++.exe",
            "type": "cppdbg", 
            "request": "launch",
            "program": "${workspaceFolder}/build/${fileBasenameNoExtension}.exe",//${fileBasenameNoExtension}
            //            "program": "${command:cmake.launchTargetPath}", //${fileBasenameNoExtension}
            //如果用上面这条program的设置,可以一键调试,需要注释preLaunchTask同时可以不需要编写tasks.json,需要安装cmake Tool插件
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": true,//是否有黑框框
            "MIMode": "gdb",  
            "miDebuggerPath": "F:/MinGW64/bin/gdb.exe", //调试器地址
            "preLaunchTask": "Build" //预编译,调用tasks.json,与tasks.json里面的label一致
            "setupCommands": [
                {
                     "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                },
                {
                    "description": "将反汇编风格设置为 Intel",
                    "text": "-gdb-set disassembly-flavor intel",
                    "ignoreFailures": true
                }
            ]

        }
    ]
}

到此,程序即可进行调试

这里解释一下args中自定义 exe文件存放路径:
${workspaceFolder}: 当前工作路径
exe: 自己建的文件夹
${fileBasenameNoExtension}: 当前文件的文件名,NoExtension意思就是不带后缀名,然后加个 .exe 就是当前的exe文件,也就是编译生成的 exe 文件
上述路径放一起意思就编译生成的 exe 文件放在exe文件夹中, 把这条配置删除的话,编译生成的exe文件就默认放在了当前工作路径下。

顺便说一下 vscode 中一些变量代表什么意思
${workspaceFolder} :表示当前workspace文件夹路径,也即/home/Coding/Test
${workspaceRootFolderName}:表示workspace的文件夹名,也即Test
${file}:文件自身的绝对路径,也即/home/Coding/Test/.vscode/tasks.json
${relativeFile}:文件在workspace中的路径,也即.vscode/tasks.json
${fileBasenameNoExtension}:当前文件的文件名,不带后缀,也即tasks
${fileBasename}:当前文件的文件名,tasks.json
${fileDirname}:文件所在的文件夹路径,也即/home/Coding/Test/.vscode
${fileExtname}:当前文件的后缀,也即.json
${lineNumber}:当前文件光标所在的行号
${env:PATH}:系统中的环境变量

  • 16
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要在VS Code中配置CMake编译环境,您可以按照以下步骤进行操作: 1. 首先,确保您已经安装了VS Code和CMake。 2. 打开VS Code,点击左侧的扩展图标(或使用快捷键Ctrl+Shift+X)打开扩展面板。 3. 在扩展面板中搜索并安装"CMake Tools"扩展。这个扩展提供了与CMake集成的功能。 4. 安装完成后,点击左侧的调试图标(或使用快捷键Ctrl+Shift+D)打开调试面板。 5. 点击调试面板顶部的齿轮图标,选择"Add Configuration"添加调试配置文件。 6. 在弹出的列表中,选择"C++ (GDB/LLDB)"作为模板。 7. 在生成的launch.json文件中,找到"configurations"数组,并在其中添加以下配置: ```json { "name": "CMake Debug", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/build/debug/your_executable_name", "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": true, "MIMode": "gdb", "miDebuggerPath": "/path/to/your/gdb" } ``` 请注意替换"your_executable_name"为您的可执行文件的名称,并将"/path/to/your/gdb"替换为您的GDB安装路径(如果使用GDB作为调试器)。 8. 然后,打开您的CMake项目文件夹,并在VS Code的左侧资源管理器中右键单击,选择"CMake: Configure"以生成构建目录。 9. 在资源管理器中再次右键单击,并选择"CMake: Build"以开始构建项目。 10. 最后,点击调试面板顶部的绿色播放按钮即可启动调试会话。 现在,您应该已经成功配置CMake编译环境,并可以在VS Code中进行调试

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

coison_z

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

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

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

打赏作者

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

抵扣说明:

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

余额充值