Unser Projekt verwendet eine sehr große Menge an Ressourcen, sowohl normale Symbole als auch SVG-Bilder. Irgendwann hörte das Projekt auf, auf einem Entwickler-PC mit einer kleinen Menge von 16 GB Speicher zu bauen.
Als Problem stellte sich heraus, dass beim Kompilieren von Ressourcendateien der gesamte verfügbare Speicher unkontrolliert verbraucht wird und wenn nicht genügend Speicher vorhanden ist, die Assemblierung fehlschlägt.
Fehlerbeschreibung
Bei Verwendung des MSVC-Compilers lautet der Fehler wie folgt:
Fehler: C1060: Compiler hat keinen Heap-Speicherplatz mehr
Antworten
Allerdings wurde Qt seit langem ein spezielles Flag hinzugefügt, um die Zusammenstellung riesiger Ressourcendateien zu optimieren. Das heißt, es behebt diesen Fehler.
Dieses Flag heißt resources_big und wird der Profildatei wie folgt hinzugefügt.
KONFIG += Ressourcen_groß
Es ist bemerkenswert, dass dieses Flag vor sehr langer Zeit hinzugefügt wurde, aber es ist immer noch nicht dokumentiert, obwohl es sogar in den Qt-Projektbeispielen vorhanden ist. Oder seine Beschreibung ist sehr tief in der Qt-Dokumentation versteckt.
Совет: подключайте ресурсы динамически.
Используйте Resource Compiler:
https://doc.qt.io/qt-5/rcc.html
Используем, там где требуется :)
Добрый день, Евгений!
А можно ли этот флаг, каким-то образом написать при компиляции программы с использованием PyQT? Например с помощью Nuitka?
resources_big - это флаг для сборки c++ приложения. Если Nuitka не предоставляет какой-либо функционал для прикручивания конфигурационных директив типа CONFIG при компиляции, то сомневаюсь. Про сам Nuitka я первый раз слышу, не сталкивался с этой штукой.
А так я согласен с Михаилом, как он вам ответил на форуме, нужно использовать динамические ресурсные файлы.