Как диагностировать только начинаю изучать Qt, не знаю как убрать ошибки:-1: ошибка: collect2.exe: error: ld returned 1 exit status?
Ссылка скопирована
Нужно понять: создаю проект на qmake с уже готовой формой, но на Qt 6.10.0 static появляются 2 ошибки, при создании проекта на qt 6.9.2 shared и qt 5.5.17 static такой проблемы не возникает, в чём может быть причина?
Файл QT Proj.pro
QT += core gui greaterThan(QT_MAJOR_VERSION, 4): QT += widgets CONFIG += c++17 # You can make your code fail to compile if it uses deprecated APIs. # In order to do so, uncomment the following line. #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ main.cpp \ mainwindow.cpp HEADERS += \ mainwindow.h FORMS += \ mainwindow.ui # Default rules for deployment. qnx: target.path = /tmp/$${TARGET}/bin else: unix:!android: target.path = /opt/$${TARGET}/bin !isEmpty(target.path): INSTALLS += target
Файл mainwindow.h
#ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> QT_BEGIN_NAMESPACE namespace Ui { class MainWindow; } QT_END_NAMESPACE class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent = nullptr); ~MainWindow(); private: Ui::MainWindow *ui; }; #endif // MAINWINDOW_H
Файл main.cpp
#include "mainwindow.h" #include <QApplication> int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w; w.show(); return a.exec(); }
Файл mainwindow.cpp
#include "mainwindow.h" #include "ui_mainwindow.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { ui->setupUi(this); } MainWindow::~MainWindow() { delete ui; }
Нужно решить такую задачу?
Заказать помощь
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Лучший ответ
1
Другие ответы (0)
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопроскомментарий
Вам также может быть интересно
Pyrogram
Как правильно зарегистрировать юзер бота в Telegram?
1 ответ
печатные-платы
Как заставить запускаться программу M3.exe от компании Hanxing AOI в инспекционной машине на Windows 7 Pro?
1 ответ
VPN
Как правильно настроить vless для Android TV?
1 ответ
Visual Studio Code
Как лучше убрать тень у панели слева в VS Code?
1 ответ

Ошибка
collect2.exe: error: ld returned 1 exit statusв Qt — это не сама причина, а финальное сообщение линкера: сборка не смогла слинковать exe. Настоящая ошибка обычно выше в логе:undefined reference, конфликт библиотек, несовместимая static/shared сборка, отсутствующий plugin или неправильный kit.Сначала откройте Compile Output полностью и найдите строки перед
collect2.exe. Ищите:undefined reference to ... cannot find -l... multiple definition of ... file format not recognized
Qt 6.10 static и Qt 6.9 shared — разные сценарии. Static Qt требует подтягивать больше зависимостей и плагинов. То, что shared 6.9.2 собирается, не доказывает, что static 6.10 настроен корректно.
Проверьте kit: компилятор, qmake, MinGW/MSVC должны соответствовать друг другу. Нельзя нормально линковать проект, если Qt собран одним компилятором, а проект собирается другим.
Для формы проверьте, подключены ли исходники:
FORMS += mainwindow.ui SOURCES += main.cpp mainwindow.cpp HEADERS += mainwindow.h
Если ошибка связана с ресурсами/иконками, проверьте
RESOURCES +=. Если с виджетами — в pro должно быть:QT += core gui widgets
Итог:
collect2говорит только “линковка упала”. Смотрите строки выше. Для static Qt 6.10 особенно проверьте совместимость kit, компилятора, qmake и недостающие библиотеки/плагины.