Visual Studio 2015 中 SDL2 开发环境的搭建
Visual Studio 2015 中 SDL2 开发环境的搭建
新建控制台工程
新建 Win32 控制台应用程序。
具体流程:文件->新建->项目->Win32控制台应用程序。
拷贝并配置 SDL2 开发文件
拷贝 SDL2 开发文件
- 头文件(*.h)拷贝至项目文件夹的 include 子文件夹下。
- 导入库文件(*.lib)拷贝至项目文件夹的 lib 子文件夹下。
- 动态库文件(*.dll)拷贝至项目文件夹下。
配置 SDL2 开发文件
-
打开属性面板:解决方案资源管理器->右键单击项目->属性。
-
头文件配置:配置属性->C/C+±>常规->附加包含目录,输入“include”(刚才拷贝文件的目录)。
-
导入库配置:配置属性->链接器->常规->附加库目录,输入“lib” (刚才拷贝文件的目录),配置属性->链接器->输入->附加依赖项,输入“SDL2.lib; SDL2main.lib”(导入库的文件名)。
-
动态库不用配置。
测试
- 创建源代码文件:在工程中创建一个包含 main() 函数的 C/C++ 文件(如果已经有了可以跳过这一步)。
- 包含头文件:
- 如果是 C 语言中使用 SDL2,则直接使用下面代码:
#include "SDL2/SDL.h"
- 如果是 C++ 语言中使用 SDL2,则使用下面代码:
#define __STDC_CONSTANT_MACROS extern "C" { #include "SDL2/SDL.h" }
- main() 中调用一个 SDL2 的初始化函数:
int main(int argc, char* argv[]) { if (SDL_Init(SDL_INIT_VIDEO)) { printf("Could not initialize SDL - %s\n", SDL_GetError()); } else { printf("Success init SDL"); } return 0; }
中间遇到 2 个报错:
报错 1:LNK2019 无法解析的外部符号 __imp__fprintf,该符号在函数 _ShowError 中被引用
解决方法:添加以下代码:
#pragma comment(lib, "legacy_stdio_definitions.lib")
报错 2:LNK2019 无法解析的外部符号 __imp____iob_func,该符号在函数 _ShowError 中被引用
解决方法:添加以下代码:
extern "C"
{
FILE __iob_func[3] = { *stdin, *stdout, *stderr };
}
添加完上面的的代码,运行程序。如果运行无误,则代表 SDL2 已经配置完成。
PS:这里要在打印语句处设置断点,不然输出完程序就结束了,来不及看输出。
SDL2 开发文件的下载链接
链接:SDL2 库.zip
来自雷霄骅博士,属于比较旧的版本。