#c #mingw #rtaudio
#c #mingw #rtaudio
Вопрос:
Я хочу использовать rtaudio в своем проекте. Я следую инструкциям в install.txt который подсказывает мне запустить ./configure затем make.
Когда я запускаю make, я получаю кучу предупреждений:
$ make
Making all in .
make[1]: Entering directory `/c/Users/Onur/Desktop/Development/rtaudio-4.1.2'
CXX RtAudio.lo
In file included from RtAudio.cpp:43:0:
RtAudio.h:585:11: error: 'uintptr_t' does not name a type
typedef uintptr_t ThreadHandle;
^
In file included from RtAudio.cpp:43:0:
RtAudio.h:608:3: error: 'ThreadHandle' does not name a type
ThreadHandle thread;
^
In file included from RtAudio.cpp:3682:0:
c:mingwincludeaudioclient.h:166:50: error: expected constructor, destructor, or type conversion before ';' token
DEFINE_ENUM_FLAG_OPERATORS(AUDCLNT_STREAMOPTIONS);
^
c:mingwincludeaudioclient.h:206:13: error: '_In_' has not been declared
_In_ AUDCLNT_SHAREMODE ShareMode,
^
c:mingwincludeaudioclient.h:206:37: error: expected ',' or '...' before 'ShareMode'
_In_ AUDCLNT_SHAREMODE ShareMode,
^
Было бы здорово, если бы кто-нибудь мог помочь мне в этом.
Комментарии:
1. Похоже, это относится к какому-то нестандартному материалу. Вы уверены, что у вас установлены все пакеты зависимостей?
2. Я использую wasapi. От каких зависимостей зависит rtaudio?
3. Я не знаю конкретно, но, похоже,
uintptr_t
хочу, чтобы у вас был либо C99, либо C 11.4. Похоже, вы правы. Добавление -std = c 11 устранило эту проблему, но он не может найти audioclient.h. Я предполагаю, что это связано с wasapi.
Ответ №1:
Я нашел решение, используя cmake в Windows:
- Просто скачайте cmake gui
- Получите исходный код rtaudio с github или их официальной веб-страницы
- Откройте RtAudio.h и включите math.h
- Сгенерируйте файлы сборки с помощью cmake gui в отдельную папку (отключите BUILD_TESTING перед настройкой)
- Перейдите в папку сборки с помощью терминала. И запустите mingw32-make. Убедитесь, что mingw /bin добавлен в path, чтобы он мог найти mingw32-make.
- У вас должно быть три файла: librtaudio.библиотеки dll librtaudio.dll.a и librtaudio_static.a
У меня это сработало.