Qt Creator项目打破:"找不到建筑x86_64符号"
Qt Creator projects breaking: "symbols not found for architecture x86_64"
我在Mac上使用Qt Creator编程(High Sierra 10.13.4(。我的项目似乎在工作几天后自发中断。
给出的链接器错误是:"找不到体系结构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;
}
帧.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
相关文章:
- 为x86而非x64编译时出错
- C++如何仅使用MOV在x86上实现发布和获取
- 在 c++ 中使用 x86 DIV 的这个 asm 块有什么用?
- 在 x86 上实现 std::atomic_thread_fence(std::memory_order_seq_cst
- 如何将C++子例程链接到 x86 程序集程序?
- 如何在 x86 处理器上实现"锁定添加"
- 您选择的 CPU 不支持 x86-64 指令集
- std::x86 上需要memory_order_acquire围栏吗?
- 尝试使用 x86 asm SSSE3 将大端转换为小端序
- 如何在 MSVC C++中迁移 x64 的 x86 代码
- 将内联程序集尾调用函数尾声替换为用于x86/x64 msvc的Intrinsics
- 将程序从x86转换为x64
- 如果由不同的线程写入 8 字节,那么现代英特尔 x86 上的 8 字节读取是否保证理智?
- 将vector<vector<double>>从x86平台中创建的一个进程发送到x64中构建的另一个进程的最快方法是什么
- x86 32位对Cuda的支持
- 这个x86汇编代码是如何接收和存储子程序返回的数据的
- Clang:x86 FPU调用约定
- 现代C++中STL API的差异(当我在VS2017中将目标从x64切换到x86时)
- std::atomic::fetch_add是x86-64上的串行化操作
- 如何为在 x86 主机上为 arm 目标交叉编译的项目安装依赖项