SDL (一) Mac 编译SDL库,VSCode调试,Xcode调试

在这里插入图片描述
一,下载编译(SDL2 pkg):

// 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",
  }]
}

用上这两个配置就可以起飞了

SDL (一) Mac 编译SDL库,VSCode调试,Xcode调试_第1张图片

5, XCode 调试

找到 SDL2的dylib 复制到工程中,即可使用 #include 引入头文件 ,然后就可以调试了
SDL (一) Mac 编译SDL库,VSCode调试,Xcode调试_第2张图片
SDL (一) Mac 编译SDL库,VSCode调试,Xcode调试_第3张图片
DEMO地址

最后附上 雷神的学习资料

你可能感兴趣的:(SDL)