Visual Studio 2015 中 SDL2 开发环境的搭建

2024-01-01 13:36

本文主要是介绍Visual Studio 2015 中 SDL2 开发环境的搭建,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Visual Studio 2015 中 SDL2 开发环境的搭建

  • Visual Studio 2015 中 SDL2 开发环境的搭建
    • 新建控制台工程
    • 拷贝并配置 SDL2 开发文件
      • 拷贝 SDL2 开发文件
      • 配置 SDL2 开发文件
    • 测试
    • SDL2 开发文件的下载链接

Visual Studio 2015 中 SDL2 开发环境的搭建

新建控制台工程

新建 Win32 控制台应用程序。

具体流程:文件->新建->项目->Win32控制台应用程序。

拷贝并配置 SDL2 开发文件

拷贝 SDL2 开发文件

  1. 头文件(*.h)拷贝至项目文件夹的 include 子文件夹下。
  2. 导入库文件(*.lib)拷贝至项目文件夹的 lib 子文件夹下。
  3. 动态库文件(*.dll)拷贝至项目文件夹下。

配置 SDL2 开发文件

  1. 打开属性面板:解决方案资源管理器->右键单击项目->属性。

  2. 头文件配置:配置属性->C/C+±>常规->附加包含目录,输入“include”(刚才拷贝文件的目录)。

  3. 导入库配置:配置属性->链接器->常规->附加库目录,输入“lib” (刚才拷贝文件的目录),配置属性->链接器->输入->附加依赖项,输入“SDL2.lib; SDL2main.lib”(导入库的文件名)。

  4. 动态库不用配置。

测试

  1. 创建源代码文件:在工程中创建一个包含 main() 函数的 C/C++ 文件(如果已经有了可以跳过这一步)。
  2. 包含头文件:
    • 如果是 C 语言中使用 SDL2,则直接使用下面代码:
    #include "SDL2/SDL.h"
    
    • 如果是 C++ 语言中使用 SDL2,则使用下面代码:
    #define __STDC_CONSTANT_MACROS
    extern "C"
    {
    #include "SDL2/SDL.h"
    }
    
  3. 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

来自雷霄骅博士,属于比较旧的版本。

这篇关于Visual Studio 2015 中 SDL2 开发环境的搭建的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/559405

相关文章

Visual Studio 2022 编译C++20代码的图文步骤

《VisualStudio2022编译C++20代码的图文步骤》在VisualStudio中启用C++20import功能,需设置语言标准为ISOC++20,开启扫描源查找模块依赖及实验性标... 默认创建Visual Studio桌面控制台项目代码包含C++20的import方法。右键项目的属性:

SQLite3 在嵌入式C环境中存储音频/视频文件的最优方案

《SQLite3在嵌入式C环境中存储音频/视频文件的最优方案》本文探讨了SQLite3在嵌入式C环境中存储音视频文件的优化方案,推荐采用文件路径存储结合元数据管理,兼顾效率与资源限制,小文件可使用B... 目录SQLite3 在嵌入式C环境中存储音频/视频文件的专业方案一、存储策略选择1. 直接存储 vs

SpringBoot开发中十大常见陷阱深度解析与避坑指南

《SpringBoot开发中十大常见陷阱深度解析与避坑指南》在SpringBoot的开发过程中,即使是经验丰富的开发者也难免会遇到各种棘手的问题,本文将针对SpringBoot开发中十大常见的“坑... 目录引言一、配置总出错?是不是同时用了.properties和.yml?二、换个位置配置就失效?搞清楚加

如何使用Haporxy搭建Web群集

《如何使用Haporxy搭建Web群集》Haproxy是目前比较流行的一种群集调度工具,同类群集调度工具有很多如LVS和Nginx,本案例介绍使用Haproxy及Nginx搭建一套Web群集,感兴趣的... 目录一、案例分析1.案例概述2.案例前置知识点2.1 HTTP请求2.2 负载均衡常用调度算法 2.

Python中对FFmpeg封装开发库FFmpy详解

《Python中对FFmpeg封装开发库FFmpy详解》:本文主要介绍Python中对FFmpeg封装开发库FFmpy,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、FFmpy简介与安装1.1 FFmpy概述1.2 安装方法二、FFmpy核心类与方法2.1 FF

基于Python开发Windows屏幕控制工具

《基于Python开发Windows屏幕控制工具》在数字化办公时代,屏幕管理已成为提升工作效率和保护眼睛健康的重要环节,本文将分享一个基于Python和PySide6开发的Windows屏幕控制工具,... 目录概述功能亮点界面展示实现步骤详解1. 环境准备2. 亮度控制模块3. 息屏功能实现4. 息屏时间

一文详解如何在idea中快速搭建一个Spring Boot项目

《一文详解如何在idea中快速搭建一个SpringBoot项目》IntelliJIDEA作为Java开发者的‌首选IDE‌,深度集成SpringBoot支持,可一键生成项目骨架、智能配置依赖,这篇文... 目录前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热

python常见环境管理工具超全解析

《python常见环境管理工具超全解析》在Python开发中,管理多个项目及其依赖项通常是一个挑战,下面:本文主要介绍python常见环境管理工具的相关资料,文中通过代码介绍的非常详细,需要的朋友... 目录1. conda2. pip3. uvuv 工具自动创建和管理环境的特点4. setup.py5.

Python实例题之pygame开发打飞机游戏实例代码

《Python实例题之pygame开发打飞机游戏实例代码》对于python的学习者,能够写出一个飞机大战的程序代码,是不是感觉到非常的开心,:本文主要介绍Python实例题之pygame开发打飞机... 目录题目pygame-aircraft-game使用 Pygame 开发的打飞机游戏脚本代码解释初始化部

Python中使用uv创建环境及原理举例详解

《Python中使用uv创建环境及原理举例详解》uv是Astral团队开发的高性能Python工具,整合包管理、虚拟环境、Python版本控制等功能,:本文主要介绍Python中使用uv创建环境及... 目录一、uv工具简介核心特点:二、安装uv1. 通过pip安装2. 通过脚本安装验证安装:配置镜像源(可