Разрушение проектов Qt Creator: "символы не найдены для архитектуры x86_64" - PullRequest
0 голосов
/ 01 июня 2018

Я программирую с помощью Qt Creator на Mac (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;
}

Frame.cpp last:

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

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

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

1 Ответ

0 голосов
/ 01 июня 2018

Ошибка компоновщика не такая, как задано.Это намного больше, и вы не учитываете смысл сообщения, которое действительно содержит значимую информацию, позволяющую устранить эту проблему.Ваша проблема, возможно, в том, что проект становится внутренне несовместимым с двоичной системой, а система сборки qmake не попадает в него.Эта проблема не имеет ничего общего с Qt Creator.Сборка выполняется qmake и make.Вы увидите эти проблемы, если соберетесь из командной строки - что я настоятельно советую вам сделать.

Предполагая, что источники находятся в /Users/mycaptain/src/myproject, и что вы используете Qt из macports, выполните следующие действия:в терминале:

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