2014-01-23 2 views
0

Я разрабатываю программное обеспечение с использованием Qt Library 4.8.4, VTK6.0, OpenCV2.4.3. CMake и MSVC2010 используются для создания и компиляции проекта.Сбой VTK с плагинами QT qjpeg.dll

Только для версии Release он выходит из строя во время выполнения. Я понял, что проблемы вызваны C: \ Qt \ 4.8.4 \ plugins \ imageformats \ qjpeg4.dll и qjpeg4.lib. Программное обеспечение отлично работает, если эти файлы не могут быть расположены (переименованы или удалены из их каталога).

Поскольку я вообще не имею никакого отношения к этому плагину, я попытался переконфигурировать CMakeList для VTK и моего проекта, чтобы отключить этот плагин, удалив этот путь. Это не решает проблему. Поэтому я предполагаю, что этот плагин вызывается некоторыми зависимостями QT.

Любая идея для решения этой проблемы? Спасибо.

+1

Если вы построили все с помощью одного и того же компилятора, вы использовали цель INSTALL для установки VTK? Если это так, помните, что это может ограничить конфигурацию, которую вы можете использовать для своего приложения. Небезопасно использовать dll Release в приложении для отладки или dll Debug в приложении для выпуска. Оба из них приведут к тому, что у вас будет более 1 кучи, что приведет к тому, что ваше приложение будет иметь случайные сбои, выделяющие или освобождающие память, поскольку кучи независимы, и вы не можете безопасно распределить баран в одной куче и освободить его в другом. – drescherjm

ответ

1

Скорее всего, проблема не вызвана этими плагинами, проблема возникает в другом месте и приводит к сбою этих плагинов. Возможно, у вас есть сломанный файл jpeg, который загружается. Но, скорее всего, вы столкнулись с ошибкой памяти. Вам нужно будет скомпилировать его под Linux и запустить с помощью valgrind, чтобы узнать, что происходит.

Я надеюсь, что вы перекомпилировали все части этого проекта с помощью того же компилятора C++?

+0

«Надеюсь, вы перекомпилировали все части этого проекта с помощью того же компилятора C++?» Очень важно. – drescherjm

+0

Спасибо за ваше предложение. Да, у меня есть каждая часть, скомпилированная с тем же компилятором, и будьте очень осторожны с debug и release dll. К тому времени, когда сбой программного обеспечения, нет jpeg. Я согласен, что это может быть ошибка памяти. Просто интересно, есть ли способ отслеживать его в Windows? – user3229896

Смежные вопросы