无法从QT wiki构建项目:未解析的外部符号

时间:2018-02-24 21:44:43

标签: c++ qt qtgui

尝试构建我直接从QT for beginners wiki page复制粘贴的代码时出错。

错误

main.obj:-1: error: LNK2019: unresolved external symbol "public: __cdecl Window::Window(class QWidget *)" (??0Window@@QEAA@PEAVQWidget@@@Z) referenced in function main
debug\testempty.exe:-1: error: LNK1120: 1 unresolved externals

testempty.pro

TEMPLATE = app
TARGET = testempty
QT = core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
SOURCES += \
    main.cpp \
    window.cpp
HEADERS += \
    window.h

window.h中

#ifndef WINDOW_H
#define WINDOW_H

#include <QWidget>

class QPushButton;
class Window : public QWidget
{
public:
    explicit Window(QWidget *parent = nullptr);
private:
    QPushButton *m_button;
};

#endif // WINDOW_H

window.cpp

#include "window.h"
#include <QPushButton>

Window::Window(QWidget *parent) : QWidget(parent)
{
    setFixedSize(100, 50);

    m_button = new QPushButton("Hello World", this);
    m_button->setGeometry(10, 10, 80, 30);
}

的main.cpp

#include <QApplication>
#include "window.h"

int main(int argc, char **argv)
{
    QApplication app(argc, argv);
    Window window;
    window.show();

    return app.exec();
}

至于我已经尝试过的东西,我被指示构建 - >清除所有并再次尝试构建,但这没有任何区别。

1 个答案:

答案 0 :(得分:0)

Solution From a similar thread.

  1. 右键点击项目&gt;清洁
  2. 右键点击项目&gt;运行qmake
  3. 右键点击项目&gt;构建
  4. 运行
  5. 为什么会有效

    这个工作的原因是因为Run qmake更新你的Makefile。出于某种原因,当您对项目进行更改(例如添加或删除文件)时,qt不会自动更新路径。运行qmake强制qt更新项目的路径,使其能够找到mainwindow.obj文件。您可能只需运行qmake就可以解决问题了。