// 0 下载编译SDL2
[下载最新的SDL2 安装包](https://www.libsdl.org/download-2.0.php)
解压: tar -zvxf SDL2-2.0.9.tar.gz
// 1 --prefix=[make install输出目录]
./configure --prefix=/usr/local
//2 make install
sudo make -j 8 && make install
// 3下载pkg 包 [添加链接描述](https://pkgconfig.freedesktop.org/releases/)
// 4 解压安装
tar -zvxf pkg-config-0.29.2.tar.gz
cd pkg-config-0.29.2
./configure --with-internal-glib
make
make install
二, SDL创建窗口
#include
#include
int main(int argc, char *argv[])
{
printf("Hello SDL !\n");
int quit = 1;
SDL_Event event;
SDL_Window *sdl_window = NULL;
SDL_Renderer *renderer = NULL;
SDL_Init(SDL_INIT_VIDEO);
sdl_window = SDL_CreateWindow("Hello SDL",
SDL_WINDOWPOS_UNDEFINED,
SDL_WINDOWPOS_UNDEFINED,
500,
500,
SDL_WINDOW_SHOWN);
if (!sdl_window)
{
printf("Create window failed! \n");
goto __FAIL;
}
renderer = SDL_CreateRenderer(sdl_window, -1, 0);
if (!renderer)
{
printf("Create renderer failed! \n");
goto __FAIL;
}
SDL_SetRenderDrawColor(renderer, 123, 123, 123, 255);
SDL_RenderClear(renderer);
SDL_RenderPresent(renderer);
do
{
SDL_WaitEvent(&event);
switch (event.type)
{
case SDL_QUIT:
quit = 0;
break;
default:
SDL_Log("event type is %d \n", event.type);
}
} while (quit);
__FAIL:
if (renderer)
{
SDL_DestroyRenderer(renderer);
}
if (sdl_window)
{
SDL_DestroyWindow(sdl_window);
}
SDL_Quit();
return 0;
}
三, 编译运行
// 1 编译
clang -g -o helloSDL 文件名.c `pkg-config --cflags --libs sdl2`
或者
clang -g -o helloSDL helloSDL.c -lsdl2
// 2 运行
./helloSDL
四, vscode 调试
{
"version": "2.0.0",
"tasks": [{
"label": "Build with Clang",
"type": "shell",
"command": "clang",
"args": [
"-g",
"-o",
"helloSDL",
"helloSDL.c",
"-lsdl2",
],
"group": {
"kind": "build",
"isDefault": true
}
}]
}
{
// 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": "debug",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/helloSDL",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "lldb",
"logging": {
"trace": true,
"traceResponse": true,
"engineLogging": true
},
"preLaunchTask": "Build with Clang",
}]
}
用上这两个配置就可以起飞了
5, XCode 调试
找到 SDL2的dylib 复制到工程中,即可使用 #include
DEMO地址
最后附上 雷神的学习资料