Our project uses a very large number of resources, both ordinary icons and svg images. At some point, the project stopped assembling on developers' PCs with a small memory capacity of 16 GB.
The problem turned out to be that when compiling resource files, all available memory is uncontrollably consumed, and if it is not enough, then the assembly fails.
Error description
When using the MSVC compiler, the error is as follows:
error: C1060: compiler is out of heap space
Decision
However, Qt has long added a special flag that optimizes the assembly of huge resource files. That is, it solves this error.
This flag is called resources_big and is added to the pro file as follows
CONFIG += resources_big
It is noteworthy that this flag was added a very long time ago, but at the same time it is still not documented, although it is even present in the Qt project examples. Or its description is hidden very deep in Qt documentation.
Совет: подключайте ресурсы динамически.
Используйте Resource Compiler:
https://doc.qt.io/qt-5/rcc.html
Используем, там где требуется :)
Добрый день, Евгений!
А можно ли этот флаг, каким-то образом написать при компиляции программы с использованием PyQT? Например с помощью Nuitka?
resources_big - это флаг для сборки c++ приложения. Если Nuitka не предоставляет какой-либо функционал для прикручивания конфигурационных директив типа CONFIG при компиляции, то сомневаюсь. Про сам Nuitka я первый раз слышу, не сталкивался с этой штукой.
А так я согласен с Михаилом, как он вам ответил на форуме, нужно использовать динамические ресурсные файлы.