QtCreator:目标debug/... obj不存在

the*_*nta 5 c++ qt

我是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 ..目录的内容,点击运行,它构建并运行没有问题.


小智 5

发布以供将来参考:我在添加新类文件后遇到了这个问题,要编译新文件,您必须在 Build 菜单下运行 qmake 。