Qt编译ASIO SDK
Compiling ASIO SDK in Qt
我正在尝试使用 Portaudio 库和 Steinberg 的 ASIO SDK 编译 Qt 项目。我设法在没有 ASIO 的情况下编译了 Portaudio,但是在使用这两个库时我得到了 7 个这样的错误(具有不同的功能):
asiolist.obj:-1: error: LNK2019: unresolved external symbol
__imp__RegCloseKey@4 referenced in function "public: __thiscall
AsioDriverList::AsioDriverList(void)" (??0AsioDriverList@@QAE@XZ)
我仔细遵循了这些说明:http://portaudio.com/docs/v19-doxydocs/compile_windows_asio_msvc.html,并且我正在使用带有 MSVS 编译器的 Qt。
这是我的 .pro 文件
#-------------------------------------------------
#
# Project created by QtCreator 2015-06-16T11:52:41
#
#-------------------------------------------------
QT += core
QT -= gui
TARGET = audio
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
INCLUDEPATH += ../portaudio/include \
../portaudio/src/common \
../portaudio/src/os/win \
../ASIOSDK2.3/common \
../ASIOSDK2.3/host \
../ASIOSDK2.3/host/pc
HEADERS += \
../portaudio/include/pa_asio.h \
../portaudio/include/portaudio.h
SOURCES+= main.cpp \
../ASIOSDK2.3/common/asio.cpp \
../ASIOSDK2.3/host/pc/asiolist.cpp \
../portaudio/src/hostapi/asio/pa_asio.cpp \
../portaudio/src/common/pa_allocation.c \
../portaudio/src/common/pa_converters.c \
../portaudio/src/common/pa_cpuload.c \
../portaudio/src/common/pa_debugprint.c \
../portaudio/src/common/pa_dither.c \
../portaudio/src/common/pa_front.c \
../portaudio/src/common/pa_process.c \
../portaudio/src/common/pa_ringbuffer.c \
../portaudio/src/common/pa_stream.c \
../portaudio/src/common/pa_trace.c \
../portaudio/src/os/win/pa_win_coinitialize.c \
../portaudio/src/os/win/pa_win_hostapis.c \
../portaudio/src/os/win/pa_win_util.c \
../portaudio/src/os/win/pa_win_waveformat.c \
../portaudio/src/os/win/pa_win_wdmks_utils.c \
../portaudio/src/os/win/pa_x86_plain_converters.c \
../ASIOSDK2.3/host/asiodrivers.cpp
DEFINES += PA_USE_ASIO=1
有人知道吗?似乎 ASIOSDK 没有正确链接,但我不知道如何修复它。
非常感谢!
我发现发生了什么:
问题出在某些 WINAPI 函数上,只需添加:
LIBS += -ladvapi32
LIBS += -luser32
我正在尝试使用 Portaudio 库和 Steinberg 的 ASIO SDK 编译 Qt 项目。我设法在没有 ASIO 的情况下编译了 Portaudio,但是在使用这两个库时我得到了 7 个这样的错误(具有不同的功能):
asiolist.obj:-1: error: LNK2019: unresolved external symbol
__imp__RegCloseKey@4 referenced in function "public: __thiscall
AsioDriverList::AsioDriverList(void)" (??0AsioDriverList@@QAE@XZ)
我仔细遵循了这些说明:http://portaudio.com/docs/v19-doxydocs/compile_windows_asio_msvc.html,并且我正在使用带有 MSVS 编译器的 Qt。
这是我的 .pro 文件
#-------------------------------------------------
#
# Project created by QtCreator 2015-06-16T11:52:41
#
#-------------------------------------------------
QT += core
QT -= gui
TARGET = audio
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
INCLUDEPATH += ../portaudio/include \
../portaudio/src/common \
../portaudio/src/os/win \
../ASIOSDK2.3/common \
../ASIOSDK2.3/host \
../ASIOSDK2.3/host/pc
HEADERS += \
../portaudio/include/pa_asio.h \
../portaudio/include/portaudio.h
SOURCES+= main.cpp \
../ASIOSDK2.3/common/asio.cpp \
../ASIOSDK2.3/host/pc/asiolist.cpp \
../portaudio/src/hostapi/asio/pa_asio.cpp \
../portaudio/src/common/pa_allocation.c \
../portaudio/src/common/pa_converters.c \
../portaudio/src/common/pa_cpuload.c \
../portaudio/src/common/pa_debugprint.c \
../portaudio/src/common/pa_dither.c \
../portaudio/src/common/pa_front.c \
../portaudio/src/common/pa_process.c \
../portaudio/src/common/pa_ringbuffer.c \
../portaudio/src/common/pa_stream.c \
../portaudio/src/common/pa_trace.c \
../portaudio/src/os/win/pa_win_coinitialize.c \
../portaudio/src/os/win/pa_win_hostapis.c \
../portaudio/src/os/win/pa_win_util.c \
../portaudio/src/os/win/pa_win_waveformat.c \
../portaudio/src/os/win/pa_win_wdmks_utils.c \
../portaudio/src/os/win/pa_x86_plain_converters.c \
../ASIOSDK2.3/host/asiodrivers.cpp
DEFINES += PA_USE_ASIO=1
有人知道吗?似乎 ASIOSDK 没有正确链接,但我不知道如何修复它。 非常感谢!
我发现发生了什么:
问题出在某些 WINAPI 函数上,只需添加:
LIBS += -ladvapi32
LIBS += -luser32