Я пытаюсь собрать SDL2_mixer (2.0.2) с помощью Microsoft Visual C++ в Visual Studio, похоже, я правильно его настроил.
Но кажется, что два примера проектов playmus и playwave возвращают ошибки (всего 17 для каждого) относительно неразрешенных внешних символов относительно FLAC( Бесплатные Lossless Aаудио Codec) и modplug.
Кажется, я правильно связал их, добавив modplug.lib
и libFLAC_static.lib
в столбец дополнительных зависимостей компоновщика для обоих примеров проектов.
Я пытался решить эту проблему, потому что очевидно, что если эти два примера проектов потерпят неудачу, то мой проект, использующий SDL2_mixer, также потерпит неудачу с этими неразрешенными ошибками внешних символов.
И, в конце концов, я был прав. Это случилось... когда я его использовал.
Итак, изящно, есть ли способ избавиться от этих ошибок компоновщика (кажется, что я связал их правильно).
Ошибки здесь (если позволите):
Ошибка LNK2019: ссылка на неразрешенный внешний символ __imp__ModPlug_Load в функции _MODPUG_Load
Ошибка LNK2019: ссылка на неразрешенный внешний символ __imp__FLAC__stream_decoder_process_until_end_of_stream в функции _FLAC_Load
Ошибка LNK2019: неразрешенный внешний символ __imp__FLAC__stream_decoder_process_until_end_of_metadata, на который ссылается функция _FLAC_Load
Ошибка LNK2019: ссылка на неразрешенный внешний символ __imp__FLAC__stream_decoder_process_single в функции _FLAC_Load
Ошибка LNK2019: ссылка на неразрешенный внешний символ __imp__FLAC__stream_decoder_flush в функции _FLAC_Load
Ошибка LNK2019: ссылка на неразрешенный внешний символ __imp__FLAC__stream_decoder_finish в функции _FLAC_Load
Ошибка LNK2019: ссылка на неразрешенный внешний символ __imp__FLAC__stream_decoder_init_stream в функции _FLAC_Load
Ошибка LNK2019: ссылка на неразрешенный внешний символ __imp__FLAC__stream_decoder_get_state в функции _FLAC_Load Ошибка LNK2019: ссылка на неразрешенный внешний символ __imp__FLAC__stream_decoder_delete в функции _FLAC_Load
Ошибка LNK2019: ссылка на неразрешенный внешний символ __imp__FLAC__stream_decoder_new в функции _FLAC_Load
Ошибка LNK2019: ссылка на неразрешенный внешний символ __imp__ModPlug_SetMasterVolume в функции _MODPLUG_Load
Ошибка LNK2019: неразрешенный внешний символ __imp__ModPlug_SetSettings, указанный в функции _MODPLUG_Load
Ошибка LNK2019: ссылка на неразрешенный внешний символ __imp__ModPlug_GetSettings в функции _MODPLUG_Load
Ошибка LNK2019: ссылка на неразрешенный внешний символ __imp__ModPlug_Seek в функции _MODPUG_Load
Ошибка LNK2019: ссылка на неразрешенный внешний символ __imp__ModPlug_Read в функции _MODPLUG_Load Ошибка LNK2019: ссылка на неразрешенный внешний символ __imp__ModPlug_Unload в функции _MODPLUG_Load
Ошибка LNK2019: ссылка на неразрешенный внешний символ __imp__FLAC__stream_decoder_seek_absolute в функции _FLAC_Load
Ошибка LNK1120: 17 неразрешенных внешних
Дополнительные зависимости: (которые я добавил, беспомощно пытаясь решить эти ошибки): -
winmm.lib
версия.lib
libmpg123-0.lib
modplug.lib
libFLAC_static.lib
Настройки препроцессора: (внутри проекта SDL2_mixer): — (я подозреваю, что это может иметь какое-то отношение к этой ошибке, но все равно выглядит слишком хорошо): —
MUSIC_WAV
MUSIC_MOD_MODPLUG
MUSIC_OGG
MUSIC_FLAC
MUSIC_MP3_MPG123
MUSIC_MID_TIMIDITY
MUSIC_MID_NATIVE
Ошибки почти одинаковы для обоих проектов.
Я скачал modplug на GitHub из здесь, так это не официально.
И поверьте мне, создавать SDL_mixer с нуля всегда сложно.
Спасибо, что нашли время прочитать это.
libFLAC_static.lib
мне кажется подозрительным. Он предлагает статическую ссылку, хотя из ваших ошибок ясно, что вы пытаетесь связать с DLL. Возможно, есть другая версия этой библиотеки, с которой вам следует связать. - person john   schedule 25.08.2018__imp__ModPlug_Seek
, являются явным признаком того, что компоновщик пытается связать с библиотекой импорта. Если это не так, значит, что-то не так в настройках вашего проекта. - person john   schedule 25.08.2018FLAC__NO_DLL
, если вы хотите связать статические библиотеки FLAC. Для modplug вам нужно определитьMODPLUG_STATIC
. - person n. 1.8e9-where's-my-share m.   schedule 25.08.2018