我是C++和Qt的新手.我的问题是,我创建了一个新类,但它没有被编译.所以编译器说:"未解析的对象......".这是标题:
#ifndef TRANSITIOUSPLAYER_H
#define TRANSITIOUSPLAYER_H
#include <QtMultimedia>
class TransitiousPlayer
{
public:
TransitiousPlayer();
TransitiousPlayer(const TransitiousPlayer &other);
~TransitiousPlayer();
void play();
};
Q_DECLARE_METATYPE(TransitiousPlayer)
#endif // TRANSITIOUSPLAYER_H
Run Code Online (Sandbox Code Playgroud)
类:
#include "transitiousplayer.h"
...
void TransitiousPlayer::play(){
QMediaPlayer* player = new QMediaPlayer(this);
QMediaPlaylist* playlist = new QMediaPlaylist(player);
playlist->playlist->addMedia(new QString("sh.mp3"));
player->setPlaylist(playlist);
player->play();
}
Run Code Online (Sandbox Code Playgroud)
在mainwindow.cpp中:
TransitiousPlayer player;
player.play();
Run Code Online (Sandbox Code Playgroud)
在主要我也打电话:
qRegisterMetaType<TransitiousPlayer>();
Run Code Online (Sandbox Code Playgroud)
如果我只是尝试编译transitiousplayer.cpp,它会说:"目标debug/transitiousplayer.obj不存在."
Woo*_*ody 12
可能为时已晚,无法提供帮助,但我遇到了同样的问题,也是QT(5.2.0)的新手.
出于某种原因,如果已经创建了makefile,在我的情况下,它就不会将它添加到makefile中,即使你选择了"Clean",这就是我认为Clean会做的.
对我有用的解决方案是手动删除构建目录的内容并再次点击构建,在这种情况下它会重新创建它.如果不是这样,我不确定应该做什么干净.
我有一个带有几个类的项目,我构建并运行它们,然后用File-> New File .. C++类创建一个新类.写了我的课,再次按下跑步.得到我的构造函数丢失了.点击该文件的构建并获得相同的目标调试/ ... obj不存在.检查了pro文件,并且类源和头名称存在,检查了磁盘,它们在那里,检查了Makefile.Debug并且没有这些文件的痕迹.点击干净,它没有改变makefile.删除了build-Projectname-Desktop-qt_5_2_0 ..目录的内容,点击运行,它构建并运行没有问题.