Я пытаюсь использовать SDL2_mixer для звука, но я получаю эти ошибки
неопределенная ссылка на Mix_OpenAudio
неопределенная ссылка на Mix_LoadWAV_RW
неопределенная ссылка на Mix_PlayChannelTimed
Согласно учебникам Lazy Foo, неопределенные ссылки означают, что у меня что-то не так в настройках моего компоновщика, как я полагаю, все правильно. Это выглядит следующим образом:
-lmingw32 -lSDL2main -lSDL2 -lSDL2_mixer -lSOIL -lOpenGL32
Кроме того, каталоги поиска для заголовочных файлов и файлов lib являются правильными (я трижды проверил), и .dll находится в том же каталоге, что и исполняемый файл. Файлы кода также имеют соответствующие каталоги #include. Я больше не могу думать о том, чтобы попробовать, поэтому любая помощь приветствуется
Я думаю, что вы сами исполняете двоичные файлы микшера 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
каталог загрузки) присутствует в том же каталоге для динамического связывания во время выполнения для работы.
Я пытался скомпилировать 64-битный микшер с 32-битным SDL.