Russian Qt Forum
Ноябрь 23, 2024, 11:21 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: [РЕШЕНО]Долгая сборка Release в Qt Creato  (Прочитано 7556 раз)
Larry
Гость
« : Ноябрь 21, 2017, 19:09 »

Добрый день, форумчане.
Возник вопрос, почему может долго компилится проект Release в Qt Creator. В Debug компилится 35 секунд, а в Release минут 15-20...уже как пару дней такое. Настроек никаких не вносил и ничего не менял.
Использую Qt 5.9.2, Qt Creator 4.4.1, компилятор Visusl Studio 2015 (Windows 10 x64).
Уже удалял и Qt и настройки Qt Creator, ставил версию 5.9.0 (5.9.1). Осталось снести и установить Visual Studio (неохота, т.к. дофига времени устанавливается и удаляется).
Какие есть варианты?
Спасибо.
« Последнее редактирование: Ноябрь 25, 2017, 08:28 от Larry » Записан
Larry
Гость
« Ответ #1 : Ноябрь 21, 2017, 19:19 »

Только что после очередной сборки посмотрел в консоль сборки и получается что висело именно на линковке...
Записан
Larry
Гость
« Ответ #2 : Ноябрь 22, 2017, 00:11 »

После трехчасового марафона по удалению и установке Visual Studio 2015 ничего не изменилось...все также виснит на линковке на 20 минут...
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #3 : Ноябрь 22, 2017, 00:46 »

- построить вне креатора и посмотреть будет ли та же проблема
- посмотреть на особенности релиз конфигурации в .pro файле
- проверить релиз сборку на чистом проекте
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Larry
Гость
« Ответ #4 : Ноябрь 22, 2017, 09:20 »

- построить вне креатора и посмотреть будет ли та же проблема
- посмотреть на особенности релиз конфигурации в .pro файле
- проверить релиз сборку на чистом проекте

Спасибо (как-то сам сразу не сообразил  Улыбающийся ).
Проверил другие проекты (Qt Creator) и там все в порядке все быстро компилится и линкуется. Проверил текущий проект со схожим (оба используют QSerialPort), .pro файл идентичный, но в первом случае все быстро, а во втором 20 минут...уже думал может траблы где-то в проекте, но ведь в Debug все собирается быстро...
Qt Creator переустановлен с нуля и Visual Studio тоже.
Какие еще есть варианты?

Вот .pro файл проекта, который собирается быстро:

Код:
#-------------------------------------------------
#
# Project created by QtCreator 2017-06-15T11:47:37
#
#-------------------------------------------------

QT       += core gui serialport

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = FS9emulator
TEMPLATE = app

# The following define makes your compiler emit warnings if you use
# any feature of Qt which as been marked as deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS

# You can also make your code fail to compile if you use deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0


SOURCES += main.cpp\
        mainwindow.cpp \
    qcmd.cpp \
    ciodevice.cpp \
    qkeyboard.cpp \
    qkey.cpp \
    qcommand.cpp

HEADERS  += mainwindow.h \
    qcmd.h \
    ciodevice.h \
    qkeyboard.h \
    qkey.h \
    qcommand.h

FORMS    += mainwindow.ui \
    keyboard.ui \
    command.ui

win32::RC_FILE = \
                 resource/icon.rc

RESOURCES += \
    resource.qrc

а вот тот, который тормозит:

Код:
#-------------------------------------------------
#
# Project created by QtCreator 2017-11-05T15:31:39
#
#-------------------------------------------------

QT += core gui serialport

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = configurator
TEMPLATE = app

# The following define makes your compiler emit warnings if you use
# any feature of Qt which has been marked as deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS

# You can also make your code fail to compile if you use deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0


SOURCES += \
        main.cpp \
        configuratorwindow.cpp \
        qpanel.cpp \
        qcell.cpp \
        cmodbus.cpp \
        cdataunittype.cpp \
    cterminal.cpp

HEADERS += \
        configuratorwindow.h \
        qpanel.h \
        qcell.h \
        cmodbus.h \
        cdataunittype.h \
    cterminal.h

FORMS += \
        configuratorwindow.ui \
        qcell.ui \
    cterminal.ui

win32::RC_FILE = \
                 resource/icon.rc

RESOURCES += \
             resource.qrc
Записан
ssoft
Программист
*****
Offline Offline

Сообщений: 584


Просмотр профиля
« Ответ #5 : Ноябрь 23, 2017, 11:39 »

Долгая сборка в релизе может быть и из-за вложенности шаблонов.

Особенное если используются структуры вида

Код
QHash< KeyType_1, QHash< KeyType_2, QHash< KeyType_3, ValueType > > > ...
 

При этом не важно что за шаблоны std, Qt, boost или др.
Записан
Larry
Гость
« Ответ #6 : Ноябрь 23, 2017, 12:40 »

Да вложенности такой и не используется, только QVector<quint16>, QVector<QLineEdit*>...кроме того Debug быстро собирается, а там и размер поболее.
Записан
Larry
Гость
« Ответ #7 : Ноябрь 24, 2017, 14:06 »

Установил компилер mingw, теперь сборка Release 4 минуты, а Debug 1 минута 30 секунд...Это уже не 20 минут (+ gnu поматерился на некоторые участки кода - неявное приведение типов и порядок инициализации).
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #8 : Ноябрь 30, 2017, 13:13 »

вероятно, где-то в коде есть большие участки, которые активны только при релиз сборке
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.128 секунд. Запросов: 23.