Qt: переименование переменных приводит к сбою графического интерфейса

После того, как я невинно переименовал массив, мое ранее работающее решение все еще компилируется и связывается, но получающийся двоичный файл (будь то отладка или выпуск) теперь падает после рисования фрейма для графического интерфейса Qt.

То есть переименование:

Mat map_x[NUM_PROJS];

чтобы:

Mat mapX[NUM_PROJS];

…приводит к аварийному завершению двоичного файла.

Как вы можете догадаться, массив не имеет ничего общего с GUI. По факту, эта декларация является единственным упоминанием этой переменной в решении.

Я компилирую свой код C ++ в Visual Studio 2015, используя надстройку Qt VS и Qt Creator для редактирования пользовательского интерфейса.

Я полагал, что VS не обновляет .moc для соответствующего исходного файла, но я подтвердил, что «Rebuild» делает то, что говорит, посмотрев на метки даты для файлов (см. Ниже).

Следуя предложению @ JeremyFriesner, в отладчике я подтвердил, что массив находится в куче и имеет огромное количество флагов, как показано:

map_x 0x00007ff687d559c0 {{flags=1124007936 dims=0 rows=0 ...}, {flags=1124007936 dims=0 rows=0 ...}, {flags=...}, ...} cv::Mat[9]

Идентичное объявление map_y показывает 0 флагов в куче:

map_y   0x00007ff687d54ba0 {{flags=0 dims=0 rows=0 ...}, {flags=0 dims=0 rows=0 ...}, {flags=0 dims=0 rows=0 ...}, ...} cv::Mat[9]

После ручного запуска QMake для выходного файла .pro из надстройки «Qt VS Tools» VS2015 и перекомпиляции в Qt Creator проблема на мгновение исчезла, а затем снова возникла после очередного цикла очистки / сборки.

Звучит ли это кому-нибудь знакомо?

VS построить вывод следующим образом:

------ Rebuild All started: Project: imageSlice_Qt, Configuration: Debug x64 ------
1>  Moc'ing imageSlice_Qt.h...
1>  Uic'ing imageSlice_Qt.ui...
1>  Moc'ing customSpinBox.h...
1>  Rcc'ing imageSlice_Qt.qrc...
1>  customSpinBox.cpp
1>  moc_customSpinBox.cpp
1>  moc_imageSlice_Qt.cpp
1>  imageSlice_Qt.cpp
1>  main.cpp
1>  utilities.cpp
1>  Generating Code...
1>  qrc_imageSlice_Qt.cpp

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector