0

我正在尝试使用 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,我正在使用 Qt 和 MSVS 编译器。

这是我的 .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 没有正确链接,但我不知道如何修复它。非常感谢!

4

1 回答 1

0

我发现发生了什么:

问题出在一些 WINAPI 函数上,只需要添加:

 LIBS += -ladvapi32
 LIBS += -luser32
于 2015-06-16T16:06:37.623 回答