Qt笔记(十二)VS2019编译Qt程序
1、属性设置
今天像测试一下qt编写的音乐播放器,在VS2019下参考代码,写完后编译无法通过,报错:
1>mysoundeffect.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: __cdecl QSoundEffect::QSoundEffect(class QObject *)" (__imp_??0QSoundEffect@@QEAA@PEAVQObject@@@Z),函数 "public: __cdecl mysoundeffect::mysoundeffect(class QWidget *)" (??0mysoundeffect@@QEAA@PEAVQWidget@@@Z) 中引用了该符号
1>mysoundeffect.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: virtual __cdecl QSoundEffect::~QSoundEffect(void)" (__imp_??1QSoundEffect@@UEAA@XZ),函数 "public: virtual void * __cdecl QSoundEffect::`scalar deleting destructor'(unsigned int)" (??_GQSoundEffect@@UEAAPEAXI@Z) 中引用了该符号
1>mysoundeffect.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: void __cdecl QSoundEffect::setSource(class QUrl const &)" (__imp_?setSource@QSoundEffect@@QEAAXAEBVQUrl@@@Z),函数 "public: __cdecl mysoundeffect::mysoundeffect(class QWidget *)" (??0mysoundeffect@@QEAA@PEAVQWidget@@@Z) 中引用了该符号
1>mysoundeffect.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: void __cdecl QSoundEffect::setLoopCount(int)" (__imp_?setLoopCount@QSoundEffect@@QEAAXH@Z),函数 "private: void __cdecl mysoundeffect::on_spinBox_valueChanged(int)" (?on_spinBox_valueChanged@mysoundeffect@@AEAAXH@Z) 中引用了该符号
1>mysoundeffect.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: void __cdecl QSoundEffect::setVolume(double)" (__imp_?setVolume@QSoundEffect@@QEAAXN@Z),函数 "public: __cdecl mysoundeffect::mysoundeffect(class QWidget *)" (??0mysoundeffect@@QEAA@PEAVQWidget@@@Z) 中引用了该符号
1>mysoundeffect.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: void __cdecl QSoundEffect::play(void)" (__imp_?play@QSoundEffect@@QEAAXXZ),函数 "private: void __cdecl mysoundeffect::on_pushButton_clicked(void)" (?on_pushButton_clicked@mysoundeffect@@AEAAXXZ) 中引用了该符号
1>mysoundeffect.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: void __cdecl QSoundEffect::stop(void)" (__imp_?stop@QSoundEffect@@QEAAXXZ),函数 "private: void __cdecl mysoundeffect::on_pushButton_2_clicked(void)" (?on_pushButton_2_clicked@mysoundeffect@@AEAAXXZ) 中引用了该符号
1>mysoundeffect.obj : error LNK2001: 无法解析的外部符号 "public: virtual struct QMetaObject const * __cdecl QSoundEffect::metaObject(void)const " (?metaObject@QSoundEffect@@UEBAPEBUQMetaObject@@XZ)
1>mysoundeffect.obj : error LNK2001: 无法解析的外部符号 "public: virtual int __cdecl QSoundEffect::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@QSoundEffect@@UEAAHW4Call@QMetaObject@@HPEAPEAX@Z)
1>mysoundeffect.obj : error LNK2001: 无法解析的外部符号 "public: virtual void * __cdecl QSoundEffect::qt_metacast(char const *)" (?qt_metacast@QSoundEffect@@UEAAPEAXPEBD@Z)
看报错内容,应该是没有连接到链接库,于是从属性种查找链接库:
勾选后:
重新编译,通过。
2. 控制台测试程序
#include <QtCore/QCoreApplication>
#include <QtMultimedia/QMediaPlayer>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QMediaPlayer* player = new QMediaPlayer;
player->setMedia(QUrl::fromLocalFile("./test.mp3"));
player->setVolume(50);
player->play();
return a.exec();
}