Qt 4.7 + VTK 5.6.1 в Mac OS X 10.6: ошибки при связывании проектов

Я НЕУДАЧНО пытаюсь собрать примеры Qt + VTK, включенные в дистрибутив VTK 5.6.1 (.../VTK/Examples/GUI/Qt/). Вот что я использую: - Дистрибутив VTK: 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/Users/catamigue/Documents/Migue/ Разработчик/bin/vtk561Dyn/lib/vtk-5.6

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

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

также на вкладке "скомпилировать вывод" я получаю это после сборки:

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

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

BUILD_EXAMPLES = OFF
BUILD_SHARED_LIBS = OFF
BUILD_TESTING = OFF
CMAKE_BUILD_TYPE = Release
CMAKE_OSX_ARCHITECTURE = x86_64
VTK_USE_GUI_SUPPORT = ON
VTK_USE_QT = ON

Я также пытался перекомпилировать VTK с универсальными двоичными файлами (путем изменения CMAKE_OSX_ARCHITECTURE) и создать проекты в Qt Creator как в режиме отладки, так и в режиме выпуска... И ничего!

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

Любые комментарии?

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

Я не гуру ВТК, но из того, что вы написали:


person CodificandoBits    schedule 12.02.2011    source источник


Ответы (1)


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

'/tmp/qt-stuff-6474/source/qt-everywhere-opensource-src-4.7.0/lib' после -L не найден

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

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

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

  1. ld: предупреждение: каталог '/tmp/qt-stuff-6474/source/qt-everywhere-opensource-src-4.7.0/lib' после -L не найден
    ld: предупреждение: каталог '/tmp/qt- stuff-6474/source/qt-everywhere-opensource-src-4.7.0/lib' после -F not found
    Неопределенные символы:
    "vtkSmartPointerBase::~vtkSmartPointerBase()" , ссылка из:
    vtkSmartPointer::~vtkSmartPointer()in simpleview.o
    vtkSmartPointer::~vtkSmartPointer()in simpleview.o
    vtkSmartPointer::~vtkSmartPointer()in 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_Sim pleView::setupUi(QMainWindow*) в simpleview.o
    Ui_SimpleView::setupUi(QMainWindow*) в simpleview.o
    "vtkRenderer::AddActor(vtkProp*)", ссылка из:
    SimpleView:: SimpleView()in simpleview.o
    SimpleView::SimpleView()in simpleview.o
    SimpleView::SimpleView()in simpleview.o
    SimpleView::SimpleView()in 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&)in simpleview.o
    vtkSmartPointer ::vtkSmartPointer(vtkCubeSource*, vtkSmartPointerBase::NoReference const&) в simpleview.o
    vtkSmartPointer::vtkSmartPointer(vtkPolyDataMapper*, vtkSmartPointerBase::NoReference const&) в simpleview.o vtkSmartPointer::vtkSmartPointer(vtkActor*, vtkSmartPointerBase::NoReference const&)in simpleview.o
    vtkSmartPointer::vtkSmartPointer(vtkRenderer*, vtkSmartPointerBase::NoReference const&)in simpleview.o
    "vtkRenderer::New( )", на который ссылается:
    vtkSmartPointer::New() в simpleview.o
    ld: символ(ы) не найден
    collect2: ld вернул 1 статус выхода
    make: [01SimpleView.app/Contents/MacOS/01SimpleView] Ошибка 1*
    make: Выход из каталога `/Users/catamigue/ Документы/Migue/Polimi/Programming/Qt/Learning code/Qt + VTK + ITK/01SimpleView-build-desktop'
    Процесс "/usr/bin/make" завершился с кодом %2. *Ошибка при сборке проекта 01SimpleView (цель: Рабочий стол)* При выполнении шага сборки "Создать"
  2. заголовки: /usr/local/include/vtk-5.6

    библиотеки: /usr/local/lib/vtk-5.6/

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

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

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

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

#P6# <блочная цитата> #P7# #P8#

person serge_gubenko    schedule 13.02.2011