【问题标题】:Qt 4.7 + VTK 5.6.1 on Mac OS X 10.6: errors linking projectsMac OS X 10.6 上的 Qt 4.7 + VTK 5.6.1:链接项目时出错
【发布时间】:2011-02-12 06:34:22
【问题描述】:

我没有成功尝试构建 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 的“构建问题”选项卡中):

:: error: symbol(s) not found
:: error: collect2: ld returned 1 exit status

也从“编译输出”选项卡中,我在构建后得到了这个:

ld:警告:找不到 -L 之后的目录 '/tmp/qt-stuff-6474/source/qt-everywhere-opensource-src-4.7.0/lib'
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)”,引用自:
simpleview.o 中的 vtkAlgorithm::GetOutputPort()
“vtkActor::New()”,引用自:
simpleview.o 中的 vtkSmartPointer::New()
“vtkSphereSource::New()”,引用自:
simpleview.o 中的 vtkSmartPointer::New()
“QVTKWidget::QVTKWidget(QWidget*, QFlags)”,引用自:
简单视图中的 Ui_SimpleView::setupUi(QMainWindow*)
简单视图中的 Ui_SimpleView::setupUi(QMainWindow*)
“vtkRenderer::AddActor(vtkProp*)”,引用自:
SimpleView::SimpleView() 在 simpleview.o
SimpleView::SimpleView() 在 simpleview.o
SimpleView::SimpleView() 在 simpleview.o
SimpleView::SimpleView() 在 simpleview.o
“vtkCubeSource::New()”,引用自:
simpleview.o 中的 vtkSmartPointer::New()
“vtkPolyDataMapper::New()”,引用自:
simpleview.o 中的 vtkSmartPointer::New()
“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] 错误 1*
make: 离开目录`/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 = 关闭
BUILD_SHARED_LIBS = 关闭
BUILD_TESTING = 关闭
CMAKE_BUILD_TYPE = 发布
CMAKE_OSX_ARCHITECTURE = x86_64
VTK_USE_GUI_SUPPORT = 开启
VTK_USE_QT = ON

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

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

有没有cmets?

谢谢, 米格尔

【问题讨论】:

    标签: macos qt4 vtk


    【解决方案1】:

    我不是 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 库

    希望这会有所帮助,问候

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-18
      • 2012-01-14
      • 2011-05-08
      • 2017-01-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多