首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

(译)SDL编程入门(1)Hello SDL

编译器编译完你所有的源文件后,它必须将它们链接在一起。为了让程序正确链接,它需要知道所有函数地址,包括SDL函数。对于动态链接库,这些地址在库文件。...库文件中有导入地址表,因此您程序可以在运行时导入函数。和头文件一样,你可以配置你编译器SDL库文件所在额外目录搜索,或者把库文件和编译器自带其他库文件放在一起。...你还必须告诉链接器,要针对链接库文件进行链接。如果链接器抱怨找不到 -lSDL 或 SDL2.lib,这意味着库文件不在链接器寻找库文件地方。...如果链接器抱怨说有未定义引用,可能意味着它从未被告知要链接库。 当你程序被编译和链接后,你需要在运行它时能够针对库进行链接。为了运行一个动态链接应用程序,你需要能够在运行时导入库二进制文件。...很重要一点是,函数参数是一个整数,后面是一个char*数组,返回类型是一个整数。任何其他类型main函数都会导致main未定义引用SDL需要这种类型main,所以它能兼容多种平台。

2.7K40

使用SDL2显示一张图片,SDL2上手贴

,所以广泛应用在多种游戏和速度敏感应用,比如鼎鼎大名steam平台/ffmpeg/qemu/模拟器等,当前版本是2.0。...主要需要说明有两点,但其实跟这段代码并没有直接关系,而是有关在众多绘图技术、架构、方案SDL处于一个什么位置: 1.首先是绘图哲学,使用过OpenGL及Direct3D看这些代码应当不陌生,...mac电脑上安装这两个库命令是:brew install sdl2 sdl2_image。...sdl2_image)意思是,将sdl2_image代码库及其依赖库(这里当然就是sdl2库)编译参数和引用库参数全部显示出来,作为字符串加入到编译命令中去。...但是这种方式别的shell,比如fish是不起作用,但是$( ... )这样方式就有了更好通用性。

1.6K70
您找到你想要的搜索结果了吗?
是的
没有找到

【音视频连载-001】基础学习篇- SDL 介绍以及工程配置

SDL 下载安装 Mac 上下载 SDL 很简单,直接 brew install sdl2 注意,这里下载SDL 2.0 版本,如果用如下命令 brew install sdl 下载就是...C++ 工程关联 SDL 库 接下来就是 C++ 工程关联 SDL 库,便于工程引用 SDL 相关头文件。...实现代码如下: target_link_libraries(av-beginner SDL2) target_link_libraries 方法会优先链接动态库,也可以显示指定动态库或者静态库。...完成了 SDL关联,就可以开始真正编写代码了。 代码实践 代码实践主要是验证我们环境配置有没有问题,运行一个 SDL 函数来试试。..." << endl; SDL_Init(SDL_INIT_EVERYTHING); return 0; } SDL_Init 是 SDL 初始化函数,可以根据所需功能选择性初始化也可以全部初始化

1.1K10

SDL2来源分析7:演出(SDL_RenderPresent())

SDL_RenderPresent(): 显示。 上篇文章分析了该流程第6个函数SDL_RenderCopy()。本文继续分析该流程最后一个函数SDL_RenderPresent()。...OpenGL OpenGL渲染器相应RenderPresent()函数是GL_RenderPresent(),它源码例如以下所看到(位于render\opengl\SDL_render_gl.c...关键显示函数位于SDL_GL_SwapWindow()函数。以下看一下SDL_GL_SwapWindow()代码(位于video\SDL_video.c。感觉这里调用关系略微有点乱…)。...SDL_GL_SwapWindow()调用了SDL_VideoDeviceGL_SwapWindow()函数。 我们看一下“Windows视频驱动”情况下,该函数代码。...“Windows视频驱动”情况下,调用GL_SwapWindow()实际上是调用了WIN_GL_SwapWindow()函数

78920

编译ffplay并导入IDE断点调试

前言 我们学习如何使用FFmpeg开发一款简单播放器时候,ffplay一定是一个非常不错参考例子 如果能搭载ffplay源码联调环境来进行断点调试的话,相信我们理解ffplay一定能起到事半功倍效果...最新版本5.1.2原因是ffplay编译依赖sdl2,通过brew安装sdl2版本为最新2.24.0,只有FFmpeg5.1.2+版本才能匹配上 (ffplay编译依赖sdl2) (sdl2...版本要求) 编译ffplay 首先需要安装sdl2 brew install sdl2 然后进入下载FFmpeg5.1.2源码根目录,终端执行: ..../configure --enable-debug=3 --enable-ffplay --enable-sdl2 --disable-optimizations --disable-asm --enable-debug...如果存在就表示环境准备好了 如果中途有报错,可以查看ffbuild/config.log进行排查 接下来进行编译 make clean make -j8 编译产物 导入xcode 新建工程 语言选择C 引用

77840

SDL2库(1)-移植Android 端 CMakeList 集成

注意:这里使用SDL2-2.0.9 解压完后文件目录.png 我们根目录里面有看到,SDL2源码,已经为我们配置好了多种编译环境。包括Cmake 和Android.mk文件。...SDL2源码目录下CMakeLists.txt,找到USING_GENERATED_CONFIG_H, 并且修改成如下 # 把原来注释掉 # add_definitions(-DUSING_GENERATED_CONFIG_H...这个我们基本上用不到。所以其实去掉也无所谓。 直接在SDL_config_android.h文件把它注释掉 然后对应,把对应Java代码初始化注释掉。...方案2:将hidapi也添加入编译 找到对应目录,添加CMakeList.txt 添加自己CMakeList.png 我们看到这儿本来是有Android.mk文件。...,添加了 判断,如果是Android的话,就添加hidapi库,并将其连接到SDL2

2.4K40

SDL2安装指南

目前SDL多用于开发游戏、模拟器、媒体播放器等多媒体应用领域。下面主要介绍一下Windows下搭建SDL2开发环境过程。...VS项目配置 SDL2说白了其实只是一个C语言库,因此配置他就跟配置其他任意库一样,主要分为三步: 一、包含必需头文件和库文件 因为我们需要能够include进SDL2头文件,并且找到对应实现代码...二、添加编译指令 既然用了第三方库,那么我们进行编译时候肯定需要加上-l指令,从而指定编译进去静态链接库。...而按照微软一贯保姆式作风,VS并不需要我们手动输入编译指令,只需要修改一下编译配置,然后就能直接编译了。...这个配置项目->属性->配置属性->链接器->输入->附加依赖项< 这里: 在这里面加上那三个静态库名字即可(SDL2.lib、SDL2main.lib、SDL2test.lib)。

3.4K20

SDL2和OpenGL使用踩坑笔记经验分享

使用SDL2+OpenGL+nanovg过程,踩了一些坑,这里做个笔记,给需要朋友参考: 一、MacPro上显示模糊问题。...使用低级OpenGL去绘图是一个比较麻烦事情。LFTK,采用了nanovg矢量图绘图函数库,nanovg缺省使用GLFW,要移植到SDL2上也不难。...三、Windows下OpenGL MacPro和Ubuntu下测试没有问题,Window测试时发现一些OpenGL函数找不到,明明已经链接了opengl32.dll啊。...网上方案多是基于GLUT和GLFWWindows下做OpenGL开发SDL则没有找到相关资料,只好再去研读GLFW,看能不能从中借用部分代码。...总结 以上就是这篇文章全部内容了,希望本文内容大家学习或者工作具有一定参考学习价值,谢谢大家ZaLou.Cn支持。如果你想了解更多相关内容请查看下面相关链接

3.4K20

Excel小技巧41:Word创建Excel表动态链接

例如,我们可以Word中放置一个来自Excel表,并且可以随着Excel该表数据变化而动态更新。...这需要在Word创建一个Excel表动态链接,允许Word文档自动获取Excel表变化并更新数据。 例如下图1所示工作表,其中放置了一个Excel表,复制该表。 ?...图2 弹出“选择性粘贴”对话框,选取“粘贴链接”并选择“形式”列表框“Microsoft Excel工作表对象”,如下图3所示。 ?...Word文档显示,单击右键,选择快捷菜单链接Worksheet对象——链接”命令,如下图8所示, ? 图8 打开“链接”对话框,选取“手动更新”选项,如下图9所示。 ?...图9 这样,每次要更新数据时,单击右键,快捷菜单中选择“更新链接”即可,如下图10所示。 ? 图10 实际上,当创建单元格区域链接后,Word将会存储源数据字段信息,然后显示链接数据。

3.7K30

【音视频连载-004】基础学习篇-SDL 加载图片并显示

CMake 工程配置 av-beginner 项目的 CMake 配置做了一些改动,创建了一个 cmake_utils 目录,该目录下创建了一个 CMakeLists.txt ,里面存放一些自定义函数...,专门用来做开源库链接加载工作,如下图红框内容所示: 定义了一个 init_path 宏,宏功能和函数是有些类似的,在里面定义了不同开源库路径变量,后续只要引用这些变量就好了。...Android NDK 开发之 CMake 必知必会 当下载了 SDL_Image 之后,找到它路径,把它库加载到 CMake 链接目录来,也就是要调用 link_directories 方法,这里同样可以定义一个宏...对于 SDL 库或者其他库,也可以创建类似的宏,具体源码能看到。...完成了 SDL_Image CMake 配置之后,就需要在工程主 CMakeLists.txt 文件把它包含进去,现在还只是 cmake_utils 目录,这样是引用不到宏

59110

完美解决丨#python,如果引用变量未定义,则会报告NameError: name ‘变量名‘ is not defined。

NameError python,如果引用变量未定义,则会报告NameError: name '变量名' is not defined。 如下代码抛出了一个异常: !...提示: 一般来说,python,需要保证变量定义使用前面。...IndexError python,如果list、tuple元素被引用索引值超过了元素个数,则会报告IndexError: list index out of range。...原因: list索引值超过了list元素个数。 KeyError python,如果dictkey不存在,则会报告KeyError: 'key'。 如下代码抛出了一个异常: !...原因: dict不存在address这个key。 TypeError python,如果一个对象不是内置对象实例,则会报告TypeError。 如下代码抛出了一个异常: !

2.8K10

(译)SDL编程入门(5)Surface 优化和软拉伸

我们将把它们转换为优化格式来加快它们速度。 SDL2还为SDL表面提供了一个新功能,叫做软拉伸,它允许你将图像按比例放大到不同尺寸进行blit。...本教程,我们将把一张只有屏幕一半大小图像拉伸到全尺寸。...); } return optimizedSurface; } 回到我们图像加载函数,我们要做一些修改,以便在加载时转换表面。...函数顶部,我们几乎像之前教程一样加载图像,但我们也声明一个指向最终优化图像指针。 如果前面几行代码图像加载成功,我们就优化我们加载表面。...这意味着我们必须释放原始加载表面,否则我们将在内存拥有两个相同图像副本。 图像加载和转换之后,我们返回最终优化后图像。

1.2K20

【程序源代码】《金庸群侠传》C++复刻版

关键字:《金庸群侠传》C++复刻版 这是一个以SDL2为基础实现2D游戏框架,同时相当于提供了一个使用该框架制作DOS游戏《金庸群侠传》移植版范例。...2、Save所有数据进行了封装,可以较为方便地调用。 3、TextureManger是一个纹理管理器,因为《金庸群侠传》贴图是含偏移设置,故有些特殊地方。...对应在背景执行,如何画自身,如何处理事件,进入时处理,退出时处理。一般来说,衍生类应重写这些函数。其中每个元素可以包含数个子元素,绘图时子节点也会被自动一一绘出。...三:视频 这是作者编写一个视频播放器,可以将其编译为动态库,作为SDL2插件,用于进行视频过场播放。如果难以处理,可以将预处理定义宏WITH_SMALLPOT删除。...VS和GCC,如果某个库功能并未被用到,即使其包含在链接选项,也不会参与实质链接。 五:abc工程以及资源保存 abc工程用来转换之前数据。建议自行调整代码后,使用调试模式执行。

1.6K00

编译ffmpeg无法生成ffplay问题解决

首先判断SDL.h版本对应通过计算后是否0x010201至0x010300之间,如果是的话SDL版本才会正确被执行,否则这个测试项将会出现错误,生成config.log中有对应错误记录...当没有安装SDL库时,config.log相关错误信息如下 点击(此处)折叠或打开 check_pkg_config sdl SDL_events.h SDL_PollEvent...false --exists --print-errors sdl 当安装SDL版本库不对应时,config.log对应错误信息如下 点击(此处)折叠或打开...<<16 | SDL_MINOR_VERSION<<8 | SDL_PATCHLEVEL) < 0x010300" 根据ffplay与ffmpeglibavdeviceSDL相关接口与SDL1...和SDL2初步对比,发现SDL2SDL1差别还是蛮大,要改libavdevice也是力气活,所以如果SDL1不影响太多的话,还是用SDL1吧

2.3K20

SDL第三篇」绘制基本图形

前言 之前SDL两篇文章我向大家介绍了如何编译使用 SDL,以及如何才能让窗口显示出来。想了解相关内容同学可以点击下面的链接查看相关内容。...有哪些基本图形可以绘制 SDL绘制基本图形 API并不多,主要是 点、线、矩形。其它图形都可以通过 点、线、矩形组合出来。 设置颜色:绘制图形前,要设置一下画笔色彩。...Uint8 g, Uint8 b, Uint8 a) 该函数参数...count) 该函数会将使用两个相邻点之间进行连线。...SDL_SetRenderDrawColor(renderer, 0, 0, 255, 255); 该函数是设置画笔颜色,也就是说我们想画出什么颜色图形,只要用这个函数设置一下,再使用画点、画线API

1.7K20
领券