【学习笔记】VSCode+mingw+SDL2环境配置

本文详细介绍了如何在VSCode中配置SDL,并通过一个简单的绘图程序演示了其基本使用方法。从SDL的下载、解压到makefile的编写,再到程序的编译与运行,每一步都进行了详细的说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


1. SDL获取

1.1 SDL下载

直接去官网下载
在这里插入图片描述
根据使用的编译器选择对应的版本,我用的是mingw,所以选择SDL2-devel-2.0.9-mingw.tar.gz

1.2 下载之后

下载之后解压到一个容易找到的文件夹即可,不建议和原编译器组件混在一起

2. VSCode配置

安装官方的C/C++插件,长这个样子
在这里插入图片描述

3. 创建项目和相关配置

3.1 创建项目

新建一个文件夹用来保存项目,然后在VSCode中打开创建好的文件夹,然后先创建一个main.c
在这里插入图片描述
这里给出一个简单的小程序

#include <SDL.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>

int main(int argc, char *argv[])
{
    SDL_Window *window=SDL_CreateWindow("demo",SDL_WINDOWPOS_CENTERED,SDL_WINDOWPOS_CENTERED,640,480,SDL_WINDOW_SHOWN);
    SDL_Renderer *renderer=SDL_CreateRenderer(window,-1,SDL_RENDERER_ACCELERATED);
    bool quit=false;
    SDL_Event event;
    SDL_Point point;

    SDL_SetRenderDrawColor(renderer,255,255,255,255);
    while(!quit){
        while(SDL_PollEvent(&event)){
            switch(event.type){
                case SDL_QUIT:
                    quit=true;
                    break;
                case SDL_MOUSEMOTION:
                    SDL_RenderDrawLine(renderer,point.x,point.y,event.motion.x,event.motion.y);
                    point.x=event.motion.x;
                    point.y=event.motion.y;
                    break;
            }
        }
        SDL_RenderPresent(renderer);
        SDL_Delay(1000/60);
    }
    SDL_DestroyWindow(window);
    SDL_DestroyRenderer(renderer);
    return 0;
}

3.2 简单的makefile编写

程序有了,怎么编译运行呢,建议自己编写makefile(原因略
如下:

CC=gcc
SDLDIR=E:\MinGW\libs\SDL2
CFLAGS=-I $(SDLDIR)\include\SDL2 -L $(SDLDIR)\lib -lmingw32 -lSDL2main -lSDL2 -O2 #-mwindows

main.exe: main.c
	$(CC) main.c $(CFLAGS) -o main.exe

其中SDLDIR需要改成你的SDL存放位置

注意里面有个-mwindows被注释掉了,那个指令是用来隐藏cmd窗口的,当你的程序编写完善了之后就可以去掉前面那个注释了

完成之后,运行make && main,程序就编译并运行了

### 配置VSCode使用MinGW进行C/C++编译调试 #### 安装必要的工具和扩展 为了使VSCode能够支持基于MinGW的C/C++项目开发,需先安装MinGW以及Visual Studio Code的相关插件。对于Windows平台而言,建议下载并安装最新版本的MinGW-w64来获取更广泛的硬件架构兼容性[^3]。 #### 设置环境变量 完成MinGW安装之后,应当把其`bin`目录路径添加到系统的环境变量PATH中去。这一步骤确保命令行界面能识别gcc/g++等编译器指令,在后续配置JSON文件时也至关重要[^1]。 #### 创建工作区与源码文件 启动VSCode后打开一个新的文件夹作为工作空间,并在此创建至少一个`.c`或`.cpp`类型的源代码文档用于测试整个流程的有效性。 #### 安装C/C++扩展包 通过VSCode内置市场搜索“C/C++”,找到由Microsoft官方提供的同名扩展程序并点击安装按钮。此扩展提供了IntelliSense语法高亮显示、自动补全等功能的同时还集成了对多种构建工具的支持,其中包括了针对MinGW-GCC/G++的良好适配能力[^2]。 #### 编写launch.json和tasks.json 为了让IDE具备执行编译链接操作的能力,还需要定义两个重要的JSON格式配置项——即位于`.vscode/`子目录下的`launch.json`(负责描述运行参数) 和 `tasks.json`(指定预处理任务),下面是一个简单的例子: ```json // .vscode/tasks.json { "version": "2.0.0", "tasks": [ { "label": "build hello world", "type": "shell", "command": "${workspaceFolder}/mingw/bin/gcc.exe", // 或 g++.exe 对于 C++ "args": ["-g","./src/hello.c","-o","${workspaceFolder}/debug/hello"], "group": { "kind": "build", "isDefault": true }, "problemMatcher": ["$gcc"] } ] } ``` ```json // .vscode/launch.json { "version": "0.2.0", "configurations": [ { "name": "(gdb) Launch", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/debug/hello", "args": [], "stopAtEntry": false, "cwd": "${fileDirname}", "environment": [], "externalConsole": true, "MIMode": "gdb", "miDebuggerPath": "${env:ProgramFiles(x86)}/mingw-w64/i686-8.1.0-posix-dwarf-rt_v6-rev0/mingw32/bin/gdb.exe", // 请根据实际情况调整该路径 "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ], "preLaunchTask": "build hello world" } ] } ``` 上述配置实现了当按下F5键触发调试会话之前自动调用预先设定好的编译过程;同时指定了GDB可执行文件的位置以便顺利开启交互式的除错环节[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值