Я использую libsndfile
и portaudio
для воспроизведения звука с .wav
файла, и я получаю некоторую странную неопределенную ссылку ошибка при использовании sf_open(const char*, int, SF_INFO*)
Перед показывая ошибки, вот некоторые основные сведения: я использую MinGW 3.21 (не могу обновить из-за ограничений IDE) в Windows 10, а CMake - как моя система сборки. Я подтвердил, что const char*
, прошедший до sf_open
, является допустимым именем файла, и я проверил, что никакие другие строки кода не вызывают эту ошибку компиляции. Не мудрствуя лукаво, есть некоторые прекрасные ошибки:libsndfile - sf_open(): (? В <code>time.h</code> ...) Неопределенные ссылки в time.h
libsndfile/lib/libsndfile.a(aiff.o): In function time':
c:/dwimperl/c/bin/../lib/gcc/i686-w64-mingw32
/4.4.7/../../../../i686-w64-mingw32/include/time.h:242:
undefined reference to _time32'
Это отпечатанные несколько раз, вероятно, потому, что функция time
используется много в sf_open
хотя я понятия не имею, почему. Это происходит так:
In function `gmtime':
c:/dwimperl/c/bin/../lib/gcc/i686-w64-
mingw32/4.4.7/../../../../i686-w64-mingw32/include/time.h:240:
undefined reference to `_gmtime32'
Эти ошибки не подразумевают никакой корреляции между sf_open
и time.h
, но я даже попробовал следующее,
#include<sndfile.h>
int main {
sf_open(nullptr, 0, nullptr);
return 0;
}
и получил тот же результат. У меня есть libsndfile-1.dll
в том же каталоге, что и мои скомпилированные двоичные файлы, и я связываюсь с обоими libsndfile.a
и libsndfile.dll.a
. Я пробовал только ссылку на libsndfile.a
с тем же результатом. Тем не менее, я попытался ссылки только на libsndfile.dll.a
и программа компилируется, но затем упал, говоря:
An error occured while using the portaudio stream
Error number: -9984
Error message: Incompatible host API specific stream info
Я не уверен, является ли или нет, что-то для другой вопрос, но я думал, что я бы упомянуть об этом, видя что sf_open
, неисправная функция, похоже, что-то делает с информацией о потоке. В любом случае, это насколько я понял. Помощь приветствуется!