@Gytim

Где искать в памяти qml файл?

В общем есть проект на Qt5.7 qml.
Использую Ubuntu 16.04.

При сборке проекта выдает:
"ASSERT failure in QList::operator[]: \"index out of range\", file /opt/Qt/5.7/gcc_64/include/QtCore/qlist.h, line 545"

Опытным путем установил что ему не нравиться файл qml. Этот файл я когда-то добавил, но посчитал что он мне не надо и удалил. 100% в программе я его нигде не использую, и не использовал.
Удалил из .pro и удалил из qml.qrc.

Как только этот файл я добавляю обратно, приложение собирается.
Любое изменение этого файла приводит к ошибке выше.

Где и что еще может ругаться и надо менять?
(Причем на винде в виртуалке все собирается без проблем.)
  • Вопрос задан
  • 89 просмотров
Решения вопроса 1
@Gytim Автор вопроса
В общем создал дубль, скриптом в новую папку все заработало.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
vt4a2h
@vt4a2h
Senior software engineer (C++/Qt/boost)
rootObjects() возвращает только список объектов, которые были загружены с помощью load() или указаны в конструкторе QQmlApplicationEngine. Если вы ничего не загружали, то список будет пустым.
Чудес не бывает, если QList::operator[], говорит, что даже первого элемента нет, значит он пуст. Скорее всего там 0 элементов в отладчике. Если их не 0, но обращение к первому элементу вызывает assert, то там где-то выше может быть UB или память испортилась.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы