SDL2.0搭建开发环境VS2015
好文章,来自【福优学苑@音视频+流媒体】
SDL2.0搭建开发环境VS2015
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; }
***【在线视频教程】***