- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
首先,我已经让较小的示例 paex_record.c
运行。
我在 Windows8 上使用 MinGW 并从源代码编译了 portaudio,那是我从中获得了使用过的 libportaudio-2.dll
。
我在 QtCreator(没有 gui)中使用以下 .pro 文件设置了一个项目:
TEMPLATE = app
CONFIG += console
CONFIG -= app_bundle
CONFIG -= qt
SOURCES += main.cpp
LIBS += -LC:/Audio/patest/paex_record_file -llibportaudio-2
我的文件夹 C:/Audio/patest/paex_record_file
看起来像:
libportaudio-2.dll
main.cpp
pa_ringbuffer.c
pa_ringbuffer.h
pa_util.h
paex_record_file.pro
paex_record_file.pro.user
portaudio.h
我把pa_ringbuffer
和pa_util
都复制到这个文件夹里找不到了。Main.cpp
包含来自 portaudio 源的整个示例文件 paex_record_file.c
。
调用ringbuffer时出现错误(第246和271行:source):“min”未在此范围内声明
我以为这个例子会像record.c
例子一样直接运行。
我需要包含更多包吗?我尝试了algorithm
、math
、std
和using namespace std
,但仍然出现错误。但我觉得它应该开箱即用,也许我的包含文件或文件夹设置/链接不正确?
编辑:好的,所以我自己定义了一个最小函数。现在它抛出不同的错误:对“PaUtil_GetRingBufferReadAvailable”的 undefined reference
还有一些这样的。应该是缺少链接库,看看...
最佳答案
我在尝试编译 paex_record_file.c
时也遇到了这个链接错误。原来你需要在编译主文件之前编译 pa_ringbuffer.c
。还有一些 alloc 函数的外部依赖性,因此您需要更改文件中的 2 行。
我对 qt 不是很了解,但你需要做类似的事情:
SOURCES += pa_ringbuffer.c main.cpp
下面是我如何使用 MinGW 进行编译:
paex_record_file.c 内部的变化
Line 313 : data.ringBufferData = (SAMPLE *) malloc( numBytes );
Line 443 : free( data.ringBufferData );
用 MinGW 编译:
gcc -o p_rec.exe C:\path_to_portaudio\portaudio\common\pa_ringbuffer.c \
paex_record_file.c -lportaudio \
-IC:\path_to_portaudio\portaudio\src\common
我没有遇到最小问题,但也许你可以尝试删除 ifdef
守卫并尝试重新编译。
#ifdef _WIN32
#include <windows.h>
#include <process.h>
#endif
到
#include <windows.h>
#include <process.h>
关于c++ - Portaudio 示例 "record_file.c"没有找到 "min",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28660085/
首先,我已经让较小的示例 paex_record.c 运行。 我在 Windows8 上使用 MinGW 并从源代码编译了 portaudio,那是我从中获得了使用过的 libportaudio-2.
我是一名优秀的程序员,十分优秀!