我是SDL的新手,我只是好奇为什么sdl使用静态和动态库?我的意思是,sdl.dll中有哪些函数,为什么它是动态链接而不是静态链接?谢谢。
答案 0 :(得分:5)
SDL.dll
包含您在SDL中使用的所有函数的实现,例如SDL_Init()
和SDL_SetVideoMode()
。它是动态链接的,允许使用较新版本直接替换库,而不会破坏与现有应用程序的兼容性 - SDL 接口几乎不会像实现那样发生变化。动态库提供了接口和实现之间的分离,代价是动态加载它们:搜索文件,加载文件,抱怨它是否可用等等。
应用程序使用动态库更加模块化,可执行文件将保持较小。可以静态链接SDL,在这种情况下,可执行文件的大小将包括SDL库的(适度)大小,升级到较新版本的SDL将需要重新编译应用程序。