尝试构建我直接从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();
}
至于我已经尝试过的东西,我被指示构建 - >清除所有并再次尝试构建,但这没有任何区别。
答案 0 :(得分:0)
Solution From a similar thread.
为什么会有效
这个工作的原因是因为Run qmake更新你的Makefile。出于某种原因,当您对项目进行更改(例如添加或删除文件)时,qt不会自动更新路径。运行qmake强制qt更新项目的路径,使其能够找到mainwindow.obj文件。您可能只需运行qmake就可以解决问题了。