Qt 4.7 + VTK 5.6.1 в Mac OS X 10.6: ошибки при связывании проектов - PullRequest
0 голосов
/ 12 февраля 2011

Я НЕПРАВИЛЬНО пытаюсь собрать примеры Qt + VTK, включенные в дистрибутив VTK 5.6.1 (... / VTK / examples / GUI / Qt /). Вот что я использую: - ВТК дистрибуция: 5.6.1 - Qt IDE: Qt creator 2.7.1 (на основе Qt 4.7.0) - Mac OS X версия: 10.6.6

Также в файле проекта .pro на Qt я включил мои заголовки vtk и каталоги lib:

INCLUDEPATH + = /Users/catamigue/Documents/Migue/Developer/bin/vtk561/include/vtk-5.6
LIBS + = -L / Пользователи / catamigue / Документы / Migue / Разработчик / bin / vtk561Dyn / lib / vtk-5.6

Независимо от примера, который я пытаюсь построить (Events, GraphicView, ImageViewer или SimpleView), после попытки построить проект на Qt Creator я всегда получаю одну и ту же ошибку (на вкладке «Проблемы сборки» в Qt Creator):

:: ошибка: символ (ы) не найдены
:: ошибка: collect2: ld вернул 1 состояние выхода

также из вкладки «выход компиляции». Я получаю это после сборки:

ld: предупреждение: каталог '/tmp/qt-stuff-6474/source/qt-everywhere-opensource-src-4.7.0/lib' следующий -L не найден
ld: warning: каталог '/tmp/qt-stuff-6474/source/qt-everywhere-opensource-src-4.7.0/lib' следующий -F не ​​найден
Неопределенные символы :
"vtkSmartPointerBase :: ~ vtkSmartPointerBase ()", на которую ссылаются из:
vtkSmartPointer :: ~ vtkSmartPointer () в simpleview.o
vtkSmartPointer :: ~ vtkSmartPointer () в simpleview.o
vtkSmartPointer :: ~ vtkSmartPointer () в simpleview.o
vtkSmartPointer :: ~ vtkSmartPointer () в simpleview.o
vtkSmartPointer :: ~ vtkSmartPointer () в simpleview.o
"vtkAlgorithm :: GetOutputPort (int)", на который ссылаются из:
vtkAlgorithm :: GetOutputPort () в simpleview.o
"vtkActor :: New ()", ссылка с:
vtkSmartPointer :: New () в simpleview.o
"vtkSphereSource :: New ()", на который ссылаются из:
vtkSmartPointer :: New () в simpleview.o
«QVTKWidget :: QVTKWidget (QWidget *, QFlags)», на который ссылается:
Ui_SimpleView :: setupUi (QMainWindow *) в simpleview.o
Ui_SimpleView :: setupUi (QMainWindow *) в simpleview.o
"vtkRenderer :: AddActor (vtkProp *)", на который ссылается:
SimpleView :: SimpleView () в simpleview.o
SimpleView :: SimpleView () в simpleview.o
SimpleView :: SimpleView () в simpleview.o
SimpleView :: SimpleView () в simpleview.o
"vtkCubeSource :: New ()", на который ссылается:
vtkSmartPointer :: New () в simpleview.o
"vtkPolyDataMapper :: New ()", на который ссылается:
vtkSmartPointer :: New () в simpleview.o
«vtkSmartPointerBase :: vtkSmartPointerBase (vtkObjectBase *, vtkSmartPointerBase :: NoReference const &)», ссылка на которую указана из:
vtkSmartPointer :: vtkSmartPointer (vtkSphereSource *, vtkSmartPointerBase :: NoReference const &) в simpleview.o
vtkSmartPointer :: vtkSmartPointer (vtkCubeSource *, vtkSmartPointerBase :: NoReference const &) в simpleview.o
vtkSmartPointer :: vtkSmartPointer (vtkPolyDataMapper *, vtkSmartPointerBase :: NoReference const &) в simpleview.o
vtkSmartPointer :: vtkSmartPointer (vtkActor *, vtkSmartPointerBase :: NoReference const &) в simpleview.o
vtkSmartPointer :: vtkSmartPointer (vtkRenderer *, vtkSmartPointerBase :: NoReference const &) в simpleview.o
"vtkRenderer :: New ()", ссылка с которого:
vtkSmartPointer :: New () в simpleview.o
ld: символ (ы) не найдены
collect2: ld вернул 1 статус выхода
make: [01SimpleView.app/Contents/MacOS/01SimpleView] Ошибка 1 *
make: Выход из каталога `/ Users / catamigue / Documents / Migue / Polimi / Программирование / Qt / Код обучения / Qt + VTK + ITK / 01SimpleView-build-desktop '
Процесс "/ usr / bin / make" завершен с кодом% 2. * Ошибка при создании проекта 01SimpleView (цель: рабочий стол) * При выполнении шага сборки 'Make'

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

Также некоторые дополнительные сведения о том, как vtk5.6.1 был собран на моем Mac:
- версия CMake: 2.8.1.
- параметры CMake (с использованием интерфейса CMake, а не командной строки):

BUILD_EXAMPLES = ВЫКЛ.
BUILD_SHARED_LIBS = ВЫКЛ.
BUILD_TESTING = ВЫКЛ.
CMAKE_BUILD_TYPE = Выпуск
CMAKE_OSX_ARCHITECTURE = x86_64
VTK_USE_GUI_S0

1100 *1199* 1099 1099 * 10999* Я также попытался перекомпилировать VTK с универсальными двоичными файлами (изменив CMAKE_OSX_ARCHITECTURE) и собрав проекты в Qt Creator в режимах Debug и Release ... И ничего!

Я также успешно собрал всепримеров Qt (не включая VTK) ...

Есть комментарии?

Спасибо, Мигель

1 Ответ

0 голосов
/ 13 февраля 2011

Я не гуру VTK, но из того, что вы опубликовали:

предупреждение

'/ tmp / qt-stuff-6474 / source / qt -where-opensource-Отслеживание src-4.7.0 / lib '-L не найдено

говорит само за себя.Все остальные ошибки выглядят как следствие описанной выше.

Что вы можете попробовать сделать:

  1. Проверьте, был ли VTK скомпилирован \ установлен с поддержкой QT.Например, вы можете попробовать скомпилировать

    / your_vtk_folder / examples / GUI / Qt / SimpleView /

    с помощью cmake.Если у вас QT и VTK скомпилированы и установлены правильно, у вас не должно возникнуть никаких проблем с этим.

  2. Следующая двойная проверка, где были установлены файлы и библиотеки vtk.На моей машине папки:

    заголовки: /usr/local/include/vtk-5.6

    libs: /usr/local/lib/vtk-5.6/

  3. В ваш файл * .pro вы можете добавить следующее:

    INCLUDEPATH + = /usr/local/include/vtk-5.6

    LIBS + = -L / usr / local/lib/vtk-5.6/ -lvtkCommon -lvtksys -lQVTK ... все библиотеки vtk, необходимые для ваших проектов

надеюсь, это поможет, с уважением

...