如何使用 mingw 在 windows 上编译 rtaudio?

How to compile rtaudio on windows with mingw?

我想在我的项目中使用 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:\mingw\include\audioclient.h:166:50: error: expected constructor, destructor, or type conversion before ';' token
 DEFINE_ENUM_FLAG_OPERATORS(AUDCLNT_STREAMOPTIONS);
                                                  ^
c:\mingw\include\audioclient.h:206:13: error: '_In_' has not been declared
             _In_  AUDCLNT_SHAREMODE ShareMode,
             ^
c:\mingw\include\audioclient.h:206:37: error: expected ',' or '...' before 'ShareMode'
             _In_  AUDCLNT_SHAREMODE ShareMode,
                                     ^

如果有人能指导我就太好了。

我在 windows 上找到了使用 cmake 的解决方案:

  1. 直接下载cmake gui
  2. 从github或其官方网页
  3. 获取rtaudio源
  4. 打开 RtAudio.h 并包含 math.h
  5. 使用 cmake gui 将构建文件生成到单独的文件夹(配置前关闭 BUILD_TESTING)
  6. 使用终端导航到构建文件夹。和 运行 mingw32-make。确保将 mingw/bin 添加到路径中,以便它可以找到 mingw32-make。
  7. 您应该拥有三个文件:librtaudio.dll librtaudio.dll.a 和 librtaudio_static.a

这对我有用。