gpt4 book ai didi

c++ - 错误 LNK2019 : unresolved external symbol C++ in Qt platform

转载 作者:行者123 更新时间:2023-11-28 00:17:00 33 4
gpt4 key购买 nike

<分区>

我收到这三个错误,我不知道为什么?我正在使用 Qt 程序,下面的代码进入 Qt 小部件项目。 mainwindow.ui 不包括在内,因为我无论如何都无法更改它。目前的目标是将年龄放入 lineEdit 中,如 mainwindow.cpp 文件中所示。

我做过卸载和重新安装 Qt 程序之类的事情。将代码复制并粘贴到一个全新的项目中。将头文件添加到 cpp 文件等中

错误:

mainwindow.obj:-1: error: LNK2019: unresolved external symbol "public: __thiscall person::~person(void)" (??1person@@QAE@XZ) referenced in function "public: virtual __thiscall MainWindow::~MainWindow(void)" (??1MainWindow@@UAE@XZ)

mainwindow.obj:-1: error: LNK2019: unresolved external symbol "public: __thiscall person::person(void)" (??0person@@QAE@XZ) referenced in function "public: __thiscall MainWindow::MainWindow(class QWidget *)" (??0MainWindow@@QAE@PAVQWidget@@@Z)

mainwindow.obj:-1: error: LNK2019: unresolved external symbol "public: void __thiscall person::setAge(int)" (?setAge@person@@QAEXH@Z) referenced in function "private: void __thiscall MainWindow::on_lineEdit_returnPressed(void)" (?on_lineEdit_returnPressed@MainWindow@@AAEXXZ)

代码如下:

主窗口.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <string>
#include "person.h"

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
Q_OBJECT

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

private slots:
void on_lineEdit_returnPressed();

private:
Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H

人.h

#ifndef PERSON_H
#define PERSON_H


class person
{
public:

int age;

person();
person(int);

~person();

int getAge();

void setAge(int age);
};

#endif // PERSON_H

主要.cpp

#include "mainwindow.h"
#include "person.h"
#include <QApplication>
#include <string>

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();

return a.exec();
}

主窗口.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "person.h"
#include <string>

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

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

void MainWindow::on_lineEdit_returnPressed()
{
QString str = ui->lineEdit->text();
std::string age = str.toStdString();
x.setAge(stoi(age));
ui->lineEdit_2->setText(str);
}

人.cpp

#include "person.h"
using namespace std;

person::person(int age)
{
age = 0;
}

person::~person()
{

}

int getAge()
{
return age;
}

void setAge(int age)
{
age = newAge;
}

我搜索了又搜索,我所知道的是由于某种原因程序找不到 setAge() 方法或找不到 person 类。我什至问过其他了解 C++ 但不知道为什么会这样的人。请帮忙!

删除:

person x; //in the mainwindow.h file solves this problem but...

我得到错误:

C:\Users\Adam\Documents\Body_fat\mainwindow.cpp:22: error: C3861: 'setAge': identifier not found



void MainWindow::on_lineEdit_returnPressed()
{
QString str = ui->lineEdit->text();
std::string age = str.toStdString();
setAge(stoi(age));
ui->lineEdit_2->setText(str);
}

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