Я хочу скомпилировать простую программу с использованием ASIO SDK, однако возникла странная ошибка, которую я не могу исправить.
#include "asio.h"
int main(void)
{
ASIODriverInfo info {};
ASIOInit(&info);
return 0;
}
В этой части кода я вызываю функцию ASIOInit(ASIODriverInfo *info) и вызываю следующую ошибку:
asiosdk/common/asiodrvr.cpp:16:2: error: #error do not use this
16 | #error do not use this
| ^~~~~
и когда я проверял файл asiodrvr.cpp, я нашел этот код:
#if WINDOWS
#error do not use this
AsioDriver::AsioDriver (LPUNKNOWN pUnk, HRESULT *phr) : CUnknown("My AsioDriver", pUnk, phr)
{
}
Если я удалю его, это сработает, но мне не придется изменять SDK. Знаете ли вы, как правильно избежать этой ошибки?
Моя конфигурация следующая:
ОС: Windows 11
компилятор: g++ (MinGW64)
скомпилировать с помощью: makefile ручной работы
версия С++: 23
флаги компилятора: -Wall -Wextra -Wpedantic
Я пытаюсь удалить ошибку, но, думаю, она не подходит для переносимости, Я ссылаюсь на документацию (PDF) в файле SDK, но безуспешно.
Не следует включать asiodrvr.cpp
в свою сборку. По крайней мере, я так думаю. Я создаю только следующие файлы:
asio.cpp
asiodrivers.cpp
asiolist.cpp
Попробуйте с ними, посмотрите, как пойдет. Изначально ASIO планировалось сделать кроссплатформенным, но, AFAIK, теперь это только Windows.
Я не помню, как я это понял – это было много лет назад. Может быть в документации, ИДК
Спасибо большое, работает, однако как узнать какой файл включать? Я думал, что мне нужно скомпилировать все файлы cpp.