0

我没有成功尝试构建 VTK 5.6.1 发行版 (.../VTK/Examples/GUI/Qt/) 中包含的 Qt + VTK 示例。这是我正在使用的:-VTK 发行版:5.6.1 -Qt IDE:Qt creator 2.7.1(基于 Qt 4.7.0)-Mac OS X 版本:10.6.6

同样在 Qt 的 .pro 项目文件中,我包含了我的 vtk 头文件和 lib 目录:

INCLUDEPATH += /Users/catamigue/Documents/Migue/Developer/bin/vtk561/include/vtk-5.6
LIBS += -L/Users/catamigue/Documents/Migue/Developer/bin/vtk561Dyn/lib/vtk-5.6

无论我尝试构建的示例是什么(事件、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:警告:目录 '/tmp/qt-stuff-6474 /source/qt-everywhere-opensource-src-4.7.0/lib' 以下 -F 未找到
未定义符号
“vtkSmartPointerBase::~vtkSmartPointerBase()”,引用自:
vtkSmartPointer::~vtkSmartPointer()in simpleview.o
vtkSmartPointer ::~vtkSmartPointer()in simpleview.o
vtkSmartPointer::~vtkSmartPointer()in simpleview.o
vtkSmartPointer::~vtkSmartPointer()in simpleview.o
vtkSmartPointer::~vtkSmartPointer()in simpleview.o
"vtkAlgorithm::GetOutputPort(int )”,引用自:
vtkAlgorithm::GetOutputPort() in simpleview.o
“vtkActor::New()”,引用自:
simpleview.o 中的
vtkSmartPointer::New() “vtkSphereSource::New()”,引用自:
simpleview.o 中的 vtkSmartPointer::New()
“QVTKWidget::QVTKWidget( QWidget*, QFlags)",引用自:
simpleview.o 中的
Ui_SimpleView::setupUi(QMainWindow*) 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()",引用自:
simpleview.o 中的 vtkSmartPointer::New()
“vtkPolyDataMapper::New()”,引用自:
vtkSmartPointer::New() in 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()”,引用自:
simpleview.o 中的 vtkSmartPointer::New()
ld:未找到符号
collect2:ld 返回 1 个退出状态
make:[01SimpleView.app/Contents/MacOS/01SimpleView] Error 1 *
make: Leaving directory `/Users/catamigue/Documents/Migue/Polimi/Programming/Qt/Learning code/Qt + VTK + ITK/01SimpleView-build-desktop'
的进程“/usr/bin/make”以代码 %2 退出。 *构建项目 01SimpleView(目标:桌面)时出错* 执行构建步骤“Make”时

从我在其他论坛上阅读的内容来看,这可能是链接过程中的错误......我不知道该怎么做!......请提供一些指导,我们将不胜感激......

还有一些关于如何在我的 Mac 上构建 vtk5.6.1 的附加信息:
- CMake 版本:2.8.1。
- CMake 参数(使用 CMake 界面,而不是命令行):

BUILD_EXAMPLES = OFF
BUILD_SHARED_LIBS = OFF
BUILD_TESTING = OFF
CMAKE_BUILD_TYPE = 发布
CMAKE_OSX_ARCHITECTURE = x86_64
VTK_USE_GUI_SUPPORT = ON
VTK_USE_QT = ON

我还尝试通过使用通用二进制文件重新编译 VTK(通过更改 CMAKE_OSX_ARCHITECTURE)并在 Qt Creator 中以调试和发布模式构建项目......什么都没有!

我还成功构建了所有 Qt 示例(不包括 VTK)...

任何意见?

谢谢,米格尔

4

1 回答 1

0

我不是 VTK 大师,但根据您发布的内容:

警告

'/tmp/qt-stuff-6474/source/qt-everywhere-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

    库:/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 库

希望这会有所帮助,问候

于 2011-02-13T14:39:57.907 回答