2017-01-27 26 views
1

В настоящее время я пытаюсь использовать библиотеку VTK в сочетании с Qt для создания приложения для визуализации STL-файлов. Для начала я установил следующие библиотеки/программы:VS2015 + VTK 7.1.0 + Qt 5.8.0 запуск Qt-примеров из отказа точки входа VTK

  • Visual Studio 2015 Professional
  • CMake 3.7.0
  • VTK 7.1.0
  • Qt 5.8.0

для Qt Я использовал версию, которая составлена ​​для vs2015, а именно:

  • qt-opensource -windows-x86-msvc2015_64-5.8.0.exe

После следуя инструкциям по Kitware все, кажется, хорошо, я не получил каких-либо ошибок при настройке и строительство ВТК. Поэтому я решил использовать примерный код VTK в качестве отправной точки.

Снова сшивание и строительство приложения шло хорошо, но как только я попытался запустить приложение, которое я получил следующее сообщение об ошибке:

Процедура точки входа rgbSwapped @ QImage @@ QEHAA $$ QEAV1 @ Z не может быть размещен в динамической библиотеке ссылок C: \ VTK \ bin \ bin \ Release \ vtkGUISupportQt-7.1.dll.

Я искал решение, но не могу найти его. Я также пробовал другие версии VTK и Qt, но я все еще получаю эту ошибку. Например, этим утром я попробовал VTK 6.3.0 в сочетании с Qt 4.8.5, снова все прошло хорошо, пока я не попытался запустить код на этот раз, я получил эту ошибку:

Точка входа в процедуру? DoItemsLayout @ QTableView @ @UAEXXZ не может находиться в динамической библиотеке ссылок C: \ VTK \ bin \ bin \ Release \ vtkGUISupportQt-6.3.dll.

Если у кого-то есть опыт с такими ошибками, пожалуйста, дайте мне знать.

ответ

1

У меня была та же проблема. Мне кажется странным, почему система не видит QT dll в $ PATH, но если вы поместите Qt dll в исполняемый каталог, он будет работать нормально. возможно, кто-то с большим количеством экспансий может объяснить это поведение.

+0

Спасибо, это решило мою проблему. Я думал, что ошибка была вызвана DLL-файлами из VTK, но, видимо, я ошибся. – Plzzz

0

It seems strange to me, why system doesn`t see QT dll in the $PATH, but if you put Qt dll in you executable directory it will run fine.

Это зависит от типа библиотеки DLL для Windows. См. Dynamic-Link Library Search Order. По этой причине я всегда помещал требуемые DLL в исполняемый каталог, чтобы использовать правильную версию DLL. Хорошо иметь список требуемых DLL, так как эти DLL также должны быть отправлены конечным пользователям.

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

  • Нет связанных вопросов^_^