c语言基于SDL2游戏开发-第1讲环境搭建
开发编辑器
采用vscode进行开发,安装c/c++插件。
编译环境
安装MinGW,然后安装gcc,g++,autoconf,automake,gdb等常用工具。
然后将目录配置到环境变量中。
SDL2库安装
官网下载开发包,https://www.libsdl.org/
然后将里面的内容分别复制到MinGW的目录对应文件夹下面。
其中的bin中的dll复制到c盘windows/system32文件夹下。
配置编译调试
打开vscode,选择一个文件夹作为项目目录,然后选择调试,选择c++(GDB/LLDB),然后它就会在项目中创建一个.vscode文件夹,里面会创建一个launch.json文件,配置这个文件。
配置如下:
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "D:\\MinGW\\bin\\gdb.exe",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask":"build c"
}
]
}
preLaunchTask: 表示我们在调试之前执行的任务
MIMode: 表示调试方式
miDebuggerPath: 表示gdb路径
program: 表示当前路径的文件为调试文件
配置如下:
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "build",
"type": "shell",
"command": "msbuild",
"args": [
// Ask msbuild to generate full paths for file names.
"/property:GenerateFullPaths=true",
"/t:build",
// Do not generate summary otherwise it leads to duplicate errors in Problems panel
"/consoleloggerparameters:NoSummary"
],
"group": "build",
"presentation": {
// Reveal the output only if unrecognized errors occur.
"reveal": "silent"
},
// Use the standard MS compiler pattern to detect errors, warnings and infos
"problemMatcher": "$msCompile"
},
{
"type": "shell",
"label": "build c",
"command": "D:/MinGW/bin/gcc.exe",
"args": [
"-g",
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}.exe",
"-lmingw32",
"-lSDL2main",
"-lSDL2"
],
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
上面的哪个task是它自动生成的,我们不用去管,在它下面添加一个task,配置如我们写的那样。
command为我们gcc的路径,args为我们编译调试的参数。
注意事项
gcc中关于sdl的开发需要配置-l 参数,就是配置lib,这里要注意它的顺序不能有误,也就是在命令行中的顺序为:
gcc -o main.exe main.c -lmingw32 -lSDL2main -lSDL2
需要注意的是-l这些参数需要放到源文件的后面,也就是main.c的后面,还需要注意是先SDL2main,然后才是-lSDL2。
调试的时候,一定要选择主文件也就是含有main函数的文件进行调试,否则会出现找不到入口。
评论已关闭!