Qt Creator 项目中断:"symbols not found for architecture x86_64"

Qt Creator projects breaking: "symbols not found for architecture x86_64"

我正在 Mac (High Sierra 10.13.4) 上使用 Qt Creator 进行编程。我的项目似乎在工作几天后自动中断。

给出的链接器错误是:"symbol(s) not found for architecture x86_64".

代码没有任何问题 - 我打开、运行、关闭并重新打开项目,但它们突然损坏了。我还使用 Qt 提供的示例对此进行了测试,效果相同。我可以将代码复制粘贴到一个新项目并毫无问题地编译它,但它最终会再次做同样的事情。

我曾尝试删除项目的整个调试输出文件夹以重新开始,但并没有什么不同。同样的错误。

以前有人用 QtCreator 遇到过这个问题吗?有解决办法吗?

我在这里查了很多非常相似的问题,但它们似乎都是代码错误。以防万一和我一样,这是我所有的代码:

//main.cpp
#include "display.h"
#include "frame.h"
#include <QApplication>

int main(int argc, char * argv[])
{
    QApplication a(argc, argv);
    Display w;
    w.show();
    return a.exec();
}

Display.h & Frame.h 是自动生成的。

//display.cpp
#include "display.h"
#include "ui_display.h"
#include "frame.h"


Display::Display(QWidget *parent) : QMainWindow(parent), ui(new Ui::Display)
{
    ui->setupUi(this);
    QWidget * f = new Frame(this);
    setCentralWidget(f);
}

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

Frame.cpp 最后:

#include "frame.h"
#include "ui_frame.h"

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

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

链接器错误并不是给定的。还有更多的方法,并且您没有包括实际携带有意义信息以允许调试此问题的消息的内容。您的问题可能是项目变得内部二进制不兼容,并且 qmake 构建系统没有抓住它。该问题与 Qt Creator 无关。构建由 qmake 和 make 完成。如果您从命令行构建,您会看到这些问题 - 我强烈建议您这样做。

假设源代码在 /Users/mycaptain/src/myproject 中,并且您使用的是来自 macports 的 Qt,请在终端中执行以下操作:

$ mkdir ~/src/build-myproject
$ cd ~/src/build-myproject
$ /opt/local/libexec/qt5/bin/qmake ../myproject
$ make