gpt4 book ai didi

c++ - 找不到文件 : mainwindow. obj

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:25:00 24 4
gpt4 key购买 nike

  1. 我创建了一个 GUI 应用程序 -> QMainWindow
  2. 我在菜单 + 插槽中添加了 1 项。
  3. 我创建了一个新项目 -> QDialog
  4. 我尝试使用插槽方法显示创建的对话框,但出现以下错误:

    mainwindow.obj:-1: error: LNK2019: 未解析的外部符号“public: __cdecl EditStudentDialog::EditStudentDialog(class QWidget *)” (??0EditStudentDialog@@QEAA@PEAVQWidget@@@Z) 在函数“private”中引用: void __cdecl MainWindow::on_actionNew_triggered(void)"(?on_actionNew_triggered@MainWindow@@AEAAXXZ)

    mainwindow.obj:-1: error: LNK2019: 未解析的外部符号“public: virtual __cdecl EditStudentDialog::~EditStudentDialog(void)” (??1EditStudentDialog@@UEAA@XZ) 在函数“private: void __cdecl MainWindow 中引用::on_actionNew_triggered(void)"(?on_actionNew_triggered@MainWindow@@AEAAXXZ)

这是主窗口:

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
Q_OBJECT

public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();

private slots:
void on_actionNew_triggered();

private:
Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "editstudentdialog.h"

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}

MainWindow::~MainWindow()
{
delete ui;
}

void MainWindow::on_actionNew_triggered()
{
EditStudentDialog editDialog;
editDialog.setModal(true);
editDialog.exec();
}

这是对话框(只是一个空对话框,上面没有控件):

#ifndef EDITSTUDENTDIALOG_H
#define EDITSTUDENTDIALOG_H

#include <QDialog>

namespace Ui {
class EditStudentDialog;
}

class EditStudentDialog : public QDialog
{
Q_OBJECT

public:
explicit EditStudentDialog(QWidget *parent = 0);
~EditStudentDialog();

private:
Ui::EditStudentDialog *ui;
};

#endif // EDITSTUDENTDIALOG_H


#include "editstudentdialog.h"
#include "ui_editstudentdialog.h"

EditStudentDialog::EditStudentDialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::EditStudentDialog)
{
ui->setupUi(this);
}

EditStudentDialog::~EditStudentDialog()
{
delete ui;
}

我做错了什么?

编辑:这是 .pro 文件

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = GUI1
TEMPLATE = app


SOURCES += main.cpp\
mainwindow.cpp \
editstudentdialog.cpp

HEADERS += mainwindow.h \
editstudentdialog.h

FORMS += mainwindow.ui \
editstudentdialog.ui

PS:我尝试清理项目然后构建它,但仍然是同样的问题。

编辑 2:我正在使用 Qt Creator 2.7 和 Qt 5.0.2

最佳答案

解决方案

  1. 右键单击项目 > 清理

  2. 右键单击项目 > 运行 qmake

  3. 右键单击项目 > 构建

  4. 运行 - 第一次成功

为什么有效

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

关于c++ - 找不到文件 : mainwindow. obj,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15864177/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com