Прежде всего, я получил небольшой пример paex_record.c
для работы.Пример Portaudio «record_file.c» не найден «min»
Я использую MinGW на Windows8 и скомпилировал portaudio из исходного кода, вот и я использовал использованный libportaudio-2.dll
.
Я создал проект в QtCreator (без графического интерфейса) со следующими .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
содержит весь файл примера paex_record_file.c
из источника portaudio.
Существует ошибка при вызове ringbuffer (строка 246 и 271: source): "min" was not declared in this scope
Я думал, что этот пример будет непосредственно работать так же, как record.c
например.
Нужно ли включать дополнительные пакеты? Я пробовал algorithm
, math
, std
и using namespace std
, но все же ошибка возникает. Но я чувствую, что он должен работать вне коробки, возможно, мои включенные файлы или настройка/привязка папки не в порядке?
EDIT: Хорошо, поэтому я просто определил функцию min-function самостоятельно. Теперь он вызывает различную ошибку: undefined reference to "PaUtil_GetRingBufferReadAvailable"
и еще пара таких. Существует, вероятно, lib отсутствует для связи, имея вид ...
окна.h имеет макросы для min и max, которые, вероятно, мешают, попробуйте #define NOMINMAX, прежде чем включать его – 4pie0
Это не сработало. 'define NOMINMAX' также определен в' windows.h', если определен 'RC_INVOKED', но я не знаю, определился ли последний или нет. Сделано редактирование на мой пост. – user2366975