Как скомпилировать rtaudio в Windows с помощью mingw?

#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:

  1. Просто скачайте cmake gui
  2. Получите исходный код rtaudio с github или их официальной веб-страницы
  3. Откройте RtAudio.h и включите math.h
  4. Сгенерируйте файлы сборки с помощью cmake gui в отдельную папку (отключите BUILD_TESTING перед настройкой)
  5. Перейдите в папку сборки с помощью терминала. И запустите mingw32-make. Убедитесь, что mingw /bin добавлен в path, чтобы он мог найти mingw32-make.
  6. У вас должно быть три файла: librtaudio.библиотеки dll librtaudio.dll.a и librtaudio_static.a

У меня это сработало.