对于SDL_GetVersion
,SDL2 Wiki指出:
如果要动态链接到SDL,则可能 当前版本将与您编译的版本不同 反对。该函数返回当前版本,而 SDL_VERSION()是一个宏,它告诉您所编译的版本
下面是我的python脚本,用于检查我的SDL2编译和链接版本。我发现它们是不同的。
import sdl2
compiled = sdl2.SDL_version() #initialisation
linked = sdl2.SDL_version() #initialisation
sdl2.SDL_VERSION(compiled) #updated
sdl2.SDL_GetVersion(linked) #updated
print('compiled_version = ', compiled.major, compiled.minor, compiled.patch)
print('linked_version = ', linked.major, linked.minor, linked.patch)
结果:
compiled_version = 2 0 6
linked_version = 2 0 4
在我的系统上,我安装了以下SDL2软件包:
$ sudo dpkg -l | grep sdl2
ii libsdl2-2.0-0:amd64 2.0.4+dfsg1-2ubuntu2 amd64 Simple DirectMedia Layer
ii libsdl2-image-2.0-0:amd64 2.0.1+dfsg-2+deb9u1build0.16.04.1 amd64 Image loading library for Simple DirectMedia Layer 2, libraries
ii libsdl2-ttf-2.0-0:amd64 2.0.14+dfsg1-1 amd64 TrueType Font library for Simple DirectMedia Layer 2, libraries
$ pip3 list | grep PySDL2
PySDL2 0.9.6
从上面的内容中,我了解到libsdl2-2.0-0:amd64
是链接软件包,而通过pip3在本地安装的PySDL2 0.9.6
软件包是编译后的软件包(我已经检查了version.py
文件该软件包)。
问题: