gpt4 book ai didi

c++ - 尝试实现简单 MVC 时 QT 出现 "Internal error: pc 0x0 in read in psymtab, but not in symtab."错误

转载 作者:行者123 更新时间:2023-11-28 06:49:36 24 4
gpt4 key购买 nike

我正在尝试在 QT 中实现一个简单的 MVC。目标是拥有一个渲染小部件、一个模型和一个 Controller 。 Controller 将是一个带有“渲染”方法的抽象基类,因此每个 Controller 都知道如何在给定要绘制的东西的情况下绘制其模型。我已经构建了一个非常简单的示例来说明我要完成的任务,但是在调试时,几乎立即显示以下错误:

内部错误:pc 0x0 在 psymtab 中读取,但在 symtab 中未读取。

我已尽可能多地剥离以重现该错误。虽然代码将运行并退出并显示如下所示,但尝试创建 RenderWidget 将导致几个错误,包括 Segmentation Fault 崩溃(在 Debug模式下)。

如有任何帮助,我们将不胜感激。我在下面包含了重现此错误所需的最少代码。这是在一个空的 QT Widget 项目中制作的,没有表单。

更新1

我花了更多时间来解决这个错误,并进一步缩小了范围。根据 Mitch 的建议,我进一步精简了代码并将其全部移动到一个 Main.cpp 文件中。如果您在 Main 方法中放置断点并进入 MainWindow 构造函数,则会出现错误。

main.cpp

#include <QApplication>
#include <QWidget>
#include <QMainWindow>

class RenderWidget : public QWidget
{
Q_OBJECT
public:
explicit RenderWidget(QWidget *parent = 0);
};

RenderWidget::RenderWidget(QWidget *parent) :
QWidget(parent)
{
}

class MainWindow : public QMainWindow
{
Q_OBJECT

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

private:
RenderWidget* m_renderArea;
};

MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
m_renderArea = new RenderWidget(this);
}

MainWindow::~MainWindow()
{

}

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

return a.exec();
}

#include "main.moc"

最佳答案

看起来问题要么是我安装的 QT 版本的错误,要么是我使用的调试器的错误。即使我创建了一个新项目,问题仍然存在。安装 QT 5.3 并获取最新版本的 Windows 调试工具后,错误似乎消失了。

关于c++ - 尝试实现简单 MVC 时 QT 出现 "Internal error: pc 0x0 in read in psymtab, but not in symtab."错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24231605/

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