代码之家  ›  专栏  ›  技术社区  ›  lost_in_nowhere7

如何在Window上编译Steinberg ASIO SDK?

  •  0
  • lost_in_nowhere7  · 技术社区  · 1 年前

    我想用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,所以你知道避免这个错误的正确方法是什么吗?

    我的配置如下: 操作系统:窗口11 编译器:g++(MinGW64) 编译使用:手工制作的makefile c++版本:23 编译器标志:-Wall-Wextra-Wpedantic

    我试图删除这个错误,但我想这对可移植性来说是不正确的, 我参考了SDK文件中的文档(PDF),没有成功。

    1 回复  |  直到 1 年前
        1
  •  0
  •   catnip    1 年前

    你不应该包括 asiodrvr.cpp 在您的构建中。至少,我是这么认为的。我只使用以下文件构建:

    asio.cpp
    asiodrivers.cpp
    asiolist.cpp
    

    试试这些,看看你会怎么样。ASIO最初的意图是跨平台,但AFAIK现在只支持Windows。

    推荐文章