SDL2.0搭建开发环境VS2015


***【在线视频教程】***

好文章,来自【福优学苑@音视频+流媒体】

SDL2.0搭建开发环境VS2015


image.png



SDL 开发环境配置

学习阶段推荐使用Visual Studio进行学习,因为环境配置方面相对来说比较简单。后续需要向其他平台迁移的时候,再进一步深入学习和整理。


下载库地址

SDL2库及扩展库网址和下载库地址


SDL2库

http://www.libsdl.org/download-2.0.php


下载地址

http://www.libsdl.org/release/SDL2-devel-2.0.3-VC.zip


环境配置三部曲

1、头文件路径include

2、库文件路径lib,以及.lib库文件附加依赖性

3、运行时动态库dll


SDL官网:http://www.libsdl.org/index.php 。

目前SDL有两个版本 1.2 和 2.0,建议学习阶段使用 SDL 2.0。


1. 下载SDL Development Libraries 

下载地址为:http://www.libsdl.org/download-2.0.php


解压缩文件,将这个文件夹拷贝到任意地方。


2. 在Visual Studio 中新建一个控制台项目


将第1步解压的文件的include目录和lib目录拷贝到项目的目录下。


3. 添加include目录

右键打开项目的属性窗口,找到 C/C++,添加附加包含目录:



4. 添加 library 目录

将lib目录添加配置进来:



5. 添加"附加依赖项"

先找到属性-->链接器--> 输入---> 附加依赖项,添加附加依赖项:SDL2.lib;SDL2main.lib;



6. 编写HelloWorld代码,验证环境配置

// SDL.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。

//

#include  < iostream >
#include  " SDL/SDL.h "
int  main( int  argc,  char *  argv[])
{
     try  {
         if  ( SDL_Init(SDL_INIT_EVERYTHING)  ==   - 1  )
             throw   " Could not initialize SDL! " ;
    }
     catch  (  const   char *  s )
    {
        std::cerr  <<  s  <<  std::endl;
         return   - 1 ;
    }
    std::cout  <<   " SDL initialized./n " ;
    SDL_Quit();
     return   0 ;
}
///////////////////////////////////////////
#include <iostream>
extern "C" {
#include "SDL.h"
}
int main(int argc, char* argv[]) 
{
    if (SDL_Init(SDL_INIT_VIDEO)) {
        std::cout << "SDL_Init Error: " << SDL_GetError() << std::endl;
        return 1;
    }
    SDL_Window *win = SDL_CreateWindow("Hello World!", 100, 100, 640, 480, SDL_WINDOW_SHOWN);
    if (win == nullptr) {
        std::cout << "SDL_CreateWindow Error: " << SDL_GetError() << std::endl;
        return 1;
    }
    SDL_Renderer *ren = SDL_CreateRenderer(win, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC);
    if (ren == nullptr) {
        SDL_DestroyWindow(win);
        std::cout << "SDL_CreateRender Error: " << SDL_GetError() << std::endl;
        SDL_Quit();
        return 1;
    }
    std::string imagePath = "1.bmp";
    SDL_Surface *bmp = SDL_LoadBMP(imagePath.c_str());
    if (bmp == nullptr) {
        SDL_DestroyRenderer(ren);
        SDL_DestroyWindow(win);
        std::cout << "SDL_LoadBMP Error: " << SDL_GetError() << std::endl;
        SDL_Quit();
        return 1;
    }
    SDL_Texture *tex = SDL_CreateTextureFromSurface(ren, bmp);
    SDL_FreeSurface(bmp);
    if (tex == nullptr) {
        SDL_DestroyRenderer(ren);
        SDL_DestroyWindow(win);
        std::cout << "SDL_CreateTextureFromSurface Error: " << SDL_GetError() << std::endl;
        SDL_Quit();
        return 1;
    }
    for (int i = 0; i < 3; ++i) {
        SDL_RenderClear(ren);
        SDL_RenderCopy(ren, tex, NULL, NULL);
        SDL_RenderPresent(ren);
        SDL_Delay(1000);
    }
    SDL_DestroyTexture(tex);
    SDL_DestroyRenderer(ren);
    SDL_DestroyWindow(win);
    SDL_Quit();
    // Return
    return 0;
}


好文章,来自【福优学苑@音视频+流媒体】
***【在线视频教程】***