2

我正在尝试将 SDL2_mixer 用于声音,但出现这些错误

未定义对“Mix_OpenAudio”的引用

未定义对“Mix_LoadWAV_RW”的引用

未定义对“Mix_PlayChannelTimed”的引用

根据 Lazy Foo 的教程,未定义的引用意味着我的链接器设置有问题,我认为我的每一个设置都是正确的。它是这样的:

-lmingw32 -lSDL2main -lSDL2 -lSDL2_mixer -lSOIL -lOpenGL32

此外,头文件和 lib 文件的搜索目录是正确的(我已经检查了三次),并且 .dll 与可执行文件位于同一目录中。代码文件也有相应的#include 目录。我想尝试的事情已经不多了,因此感谢您的帮助

4

2 回答 2

4

我试图用 32 位 SDL 编译一个 64 位混音器。

于 2014-06-03T02:54:42.497 回答
2

我认为您已将 SDL 混音器运行时二进制文件单独提取到目录中。但是,对于编译和链接,您需要具有链接所需的存根库libSDL2_mixer.dll.a文件的开发库。

在 SDL_mixer 页面中,您有两个部分:运行时二进制文件开发库。在第二部分,下载SDL2_mixer-devel-2.0.0-mingw.tar.gz (MinGW 32/64-bit)。将其解压缩到一个目录并将 ( /lib) 目录路径添加到 C::B 并传递-lSDL2_mixer,它应该可以正常链接。

当您运行可执行文件时,请确保SDL2_mixer.dll(从\bin下载目录中)存在于同一目录中,以便运行时动态链接正常工作。

于 2014-06-02T22:48:45.050 回答