2016-02-10 3 views
0

Попытка построить PCL 1.8 с использованием VTK 7.0.0. Target - это Visual Studio 2015. Использование брандмауэра VTK OpenGL2 У меня были ошибки, похожие на сообщенные here и here, которые указывают, что OpenGL2 еще не поддерживается для PCL.Ошибки построения PCL 1.8 с VTK-7.0.0

Однако, используя оригинальный ВТК OpenGL бэкенд я получаю различные ошибки:

  • Список ВТК библиотеки PCL проектов линковать включает библиотеки, имена которых предполагают как OpenGL и OpenGL2, несмотря на то, ВТК только настроен один или другой бэкэнд. Например, «vtkDomainsChemistryOpenGL2.lib» (когда бэкенд VTK - OpenGL).

  • "vtkDomainsChemistryOpenGL2.lib" не существует, вызывая ошибку компоновщика. Однако существует библиотека под названием «vtkDomainsChemistryOpenGL2-7.0.lib», поэтому при создании VTK добавляется суффикс версии, но не добавляется, когда CMake генерирует список библиотек для связывания проектов PCL.

  • vtkVertexBufferObject.cxx(104): error C2039: 'GetExtensionManager': is not a member of 'vtkOpenGLRenderWindow'. Класс vtkOpenGLRenderWindow подозрительно помечен VTKRENDERINGOPENGL2_EXPORT (снова в сборке OpenGL).

Я не знаю, находится ли проблема в VTK или PCL. Система сборки CMake полностью непрозрачна для меня, поэтому я никуда не увлекаюсь этим.

ответ

0

Просто следуя до себя (опять же) ...

Проблема заключалась в том, что, поскольку я первоначально построил проект «INSTALL» ВТК используя бэкенд OpenGL2, затем изменил бэкенд на OpenGL и построен «УСТАНОВИТЬ» проект VTK снова, оба бэкэнда существовали в папке установки. VTKConfig.cmake (который использует PCL для связи с VTK) находит и связывает все модули, которые он находит в папке установки, пытаясь связать их с обоими несовместимыми бэкендами.

Система сборки VTK не обнаруживает, что конфликтующие модули уже присутствуют при установке, а опции «make clean» или «rebuild» не удаляют конфликтующие модули (VTK не имеет деинсталлятора). Удаление кэшей CMake или создание нового файла чистой сборки недостаточно для устранения этого беспорядка.

Таким образом, единственным решением было вручную найти и удалить папку установки VTK («C: \ Program Files (x86) \ VTK» для записи), если вам нужно изменить сервер VTK.

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