Evgenii Legotckoi
07 жовтня 2019 р. 13:34

Недокументований QMake - CONFIG + = resources_big

На нашому проекті використовується дуже велика кількість ресурсів, як звичайних іконок, так і svg зображень. У якийсь момент проект перестав збиратися на ПК розробників з невеликим об'ємом пам'яті 16 Гб.

Проблема виявилася в тому, що при компіляції ресурсних файлів неконтрольовано споживається вся доступна пам'ять, а якщо її не вистачає, то збірка завершується з помилкою.


Опис помилки

У разі використання компілятора MSVC помилка є наступною:

error: C1060: compiler is out of heap space

Рішення

Однак в Qt вже давно доданий спеціальний прапор, який оптимізує збірку величезних ресурсних файлів. Тобто вирішує цю помилку.

Даний прапор наазивается resources_big і додається в pro файлі наступним чином

CONFIG += resources_big

Що примітно, даний прапор був Добаль дуже давно, але при цьому до цих пір не документований, хоча присутній навіть у проектах-прикладах самого Qt. Або його опис заховано дуже глибокого в документації Qt.

Рекомендовані статті на цю тему

По статті запитували0питання

4

Вам це подобається? Поділіться в соціальних мережах!

МП
  • 17 жовтня 2019 р. 13:15

Совет: подключайте ресурсы динамически.
Используйте Resource Compiler:
https://doc.qt.io/qt-5/rcc.html

Evgenii Legotckoi
  • 17 жовтня 2019 р. 13:17
  • (відредаговано)

Используем, там где требуется :)

R
  • 04 грудня 2019 р. 16:14

Добрый день, Евгений!
А можно ли этот флаг, каким-то образом написать при компиляции программы с использованием PyQT? Например с помощью Nuitka?

Evgenii Legotckoi
  • 05 грудня 2019 р. 02:49

resources_big - это флаг для сборки c++ приложения. Если Nuitka не предоставляет какой-либо функционал для прикручивания конфигурационных директив типа CONFIG при компиляции, то сомневаюсь. Про сам Nuitka я первый раз слышу, не сталкивался с этой штукой.
А так я согласен с Михаилом, как он вам ответил на форуме, нужно использовать динамические ресурсные файлы.

Коментарі

Only authorized users can post comments.
Please, Log in or Sign up
  • Останні коментарі
  • Evgenii Legotckoi
    16 квітня 2025 р. 17:08
    Благодарю за отзыв. И вам желаю всяческих успехов!
  • IscanderChe
    12 квітня 2025 р. 17:12
    Добрый день. Спасибо Вам за этот проект и отдельно за ответы на форуме, которые мне очень помогли в некоммерческих пет-проектах. Профессиональным программистом я так и не стал, но узнал мно…
  • AK
    01 квітня 2025 р. 11:41
    Добрый день. В данный момент работаю над проектом, где необходимо выводить звук из программы в определенное аудиоустройство (колонки, наушники, виртуальный кабель и т.д). Пишу на Qt5.12.12 поско…
  • Evgenii Legotckoi
    09 березня 2025 р. 21:02
    К сожалению, я этого подсказать не могу, поскольку у меня нет необходимости в обходе блокировок и т.д. Поэтому я и не задавался решением этой проблемы. Ну выглядит так, что вам действитель…
  • VP
    09 березня 2025 р. 16:14
    Здравствуйте! Я устанавливал Qt6 из исходников а также Qt Creator по отдельности. Все компоненты, связанные с разработкой для Android, установлены. Кроме одного... Когда пытаюсь скомпилиров…