Я использую VTK, чтобы прочитать серию DICOM. Я могу скомпилировать (используя CMake) пример кода VTK, и он работает хорошо. Теперь я пытаюсь использовать Qtcreator и Qt4.8.5 для создания графического интерфейса. Я связал библиотеку и включил путь в project.pro.
Когда я строю, я получаю:
Undefined symbols:
"vtkImageViewer2::New()", referenced from:
vtkSmartPointer<vtkImageViewer2>::New() in mainwindow.o
ld: symbol(s) not found
Я проверил, включить путь, и он включает /usr/local/vtk-6.1/include/vtk-6.1/
который содержит vtkImageViewer2.h.
Что не так с моим проектом?
Это ошибка компоновщика, поэтому ваш проект действительно правильно находит vtkImageViewer2.h. Вы должны использовать CMake для создания своего проекта, тогда вы можете просто сделать
find_package(VTK REQUIRED)
include(${VTK_USE_FILE})
и вся связь с VTK позаботится о вас.
В качестве дополнения к ответу Дэвида, не забудьте добавить $ {VTK_LIBRARIES} (определяется файлом VTK Use) в вашу библиотеку или двоичный / исполняемый файл:
TARGET_LINK_LIBRARIES(myLib ${VTK_LIBRARIES})
и пути к библиотекам как:
link_directories(${VTK_LIBRARY_DIRS})