【问题标题】:Qt Creator projects breaking: "symbols not found for architecture x86_64"Qt Creator 项目中断:“未找到架构 x86_64 的符号”
【发布时间】:2018-11-11 15:56:26
【问题描述】:

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

给出的链接器错误是:“未找到架构 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;
}

【问题讨论】:

  • 检查你的qt安装。你能在qt中运行非常简单的代码吗
  • 我强烈建议在互联网上搜索“符号未找到架构 x86 64”。 StackOverflow 上已经有很多关于这个的帖子了。
  • @ThomasMatthews 是的,但他们似乎都没有解决这个问题。
  • @Mohit 是的,直到我保存、关闭并重新打开项目。

标签: c++ qt qt-creator linker-errors


【解决方案1】:

链接器错误不是给定的。还有更多的方法,你没有包括实际携带有意义信息的消息的实质,允许调试这个问题。您的问题可能是项目内部变得二进制不兼容,并且 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

【讨论】:

  • 太棒了,谢谢。这基本上就是我继续解决问题所需要的。遗憾的是,我实际上并没有使用 Macports 中的 Qt,但我将致力于从命令行构建并得到真正的错误。
  • 帮自己一个忙,安装 macports 和 Qt。它至少会为你提供一个清晰的参考。您可以并行安装多个 Qt 版本,Qt 就是为此而设计的——您可以根据运行的 qmake 选择要使用的版本。 qmake 可执行文件 = 特定的 Qt 安装。
猜你喜欢
  • 2015-03-23
  • 1970-01-01
  • 1970-01-01
  • 2020-06-20
  • 2020-09-09
  • 1970-01-01
  • 1970-01-01
  • 2013-09-29
  • 1970-01-01
相关资源
最近更新 更多