在 Visual Studio 上使用 Qt VS Tools 使用非 qtcore 库会导致 LNK2019

问题描述

我正在尝试使用 QtMultimedia 的 QSoundEffect。我已经包含了这样的文件

#include <QtMultimedia/QSoundEffect>

并在我的项目中使用了 QSoundEffect。

当我在此之后尝试编译我的项目时,我收到 LNK2019 错误

1>chatwindow.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __cdecl QSoundEffect::QSoundEffect(class QObject *)" (__imp_??0QSoundEffect@@QEAA@PEAVQObject@@@Z) referenced in function "public: __cdecl Chatwindow::Chatwindow(class QWidget *)" (??0Chatwindow@@QEAA@PEAVQWidget@@@Z)
1>chatwindow.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: virtual __cdecl QSoundEffect::~QSoundEffect(void)" (__imp_??1QSoundEffect@@UEAA@XZ) referenced in function "int `public: __cdecl Chatwindow::Chatwindow(class QWidget *)'::`1'::dtor$3" (?dtor$3@?0???0Chatwindow@@QEAA@PEAVQWidget@@@Z@4HA)
1>chatwindow.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: void __cdecl QSoundEffect::setSource(class QUrl const &)" (__imp_?setSource@QSoundEffect@@QEAAXAEBVQUrl@@@Z) referenced in function "public: __cdecl Chatwindow::Chatwindow(class QWidget *)" (??0Chatwindow@@QEAA@PEAVQWidget@@@Z)
1>mainwidget.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: void __cdecl QSoundEffect::play(void)" (__imp_?play@QSoundEffect@@QEAAXXZ) referenced in function "private: void __cdecl MainWidget::process_received_forever(void)" (?process_received_forever@MainWidget@@AEAAXXZ)

如何告诉 Visual Studio QtMultimedia 相关文件的存在? Qt 包含和库路径由 Visual Studio 中的 Qt VS Tools 扩展处理,所以我有点困惑。

解决方法

出于某种奇怪的原因,当我手动将 Qt5 的 libpath 添加到库路径并将 Qt5Multimedia.lib 添加到包含的库时,它起作用了。