Mac OS X 10.6上的Qt 4.7 + VTK 5.6.1:链接项目的错误

时间:2011-02-12 06:34:23

标签: macos qt4 vtk

我非常成功地尝试构建VTK的5.6.1发行版中包含的Qt + VTK示例(... / VTK / Examples / GUI / Qt /)。这是我正在使用的: - VTK分布:5.6.1 - Qt IDE:Qt创建者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创建器上构建项目后,我总是得到相同的错误(在Qt Creator的“Build issues”选项卡中):

  

::错误:未找到符号
   :: error: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()”,引自:   simpleview.o中的vtkSmartPointer ::〜vtkSmartPointer()
  simpleview.o中的vtkSmartPointer ::〜vtkSmartPointer()
  simpleview.o中的vtkSmartPointer ::〜vtkSmartPointer()
  simpleview.o中的vtkSmartPointer ::〜vtkSmartPointer()
  simpleview.o中的vtkSmartPointer ::〜vtkSmartPointer()
  “vtkAlgorithm :: GetOutputPort(int)”,引自:   simpleview.o中的vtkAlgorithm :: GetOutputPort()
  “vtkActor :: New()”,引自:   在simpleview.o中的vtkSmartPointer :: New()
  “vtkSphereSource :: New()”,引自:   在simpleview.o中的vtkSmartPointer :: New()
  “QVTKWidget :: QVTKWidget(QWidget *,QFlags)”,引自:   simpleview.o中的Ui_SimpleView :: setupUi(QMainWindow *)   simpleview.o中的Ui_SimpleView :: setupUi(QMainWindow *)   “vtkRenderer :: AddActor(vtkProp *)”,引自:   simpleview.o中的SimpleView :: SimpleView()   simpleview.o中的SimpleView :: SimpleView()   simpleview.o中的SimpleView :: SimpleView()   simpleview.o中的SimpleView :: SimpleView()   “vtkCubeSource :: New()”,引自:   在simpleview.o中的vtkSmartPointer :: New()
  “vtkPolyDataMapper :: New()”,引自:   在simpleview.o中的vtkSmartPointer :: New()
  “vtkSmartPointerBase :: vtkSmartPointerBase(vtkObjectBase *,vtkSmartPointerBase :: NoReference const&)”,引自:   simpleview.o中的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&)
  “vtkRenderer :: New()”,引自:   在simpleview.o中的vtkSmartPointer :: New()
   ld:未找到符号
   collect2:ld返回1退出状态
  制作: [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 = 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)......

有任何意见吗?

谢谢, 米格尔

1 个答案:

答案 0 :(得分:0)

我不是VTK大师,而是你发布的内容:

警告

  

'/ TMP / QT-东西-6474 /源极/ QT-无处不开源-SRC-4.7.0 / lib中'   以下是-L未找到

是自我解释的。所有其他错误看起来都像是上面的错误。

你可以尝试做什么:

  1. 检查VTK是否已编译\安装了QT支持。例如,您可以尝试编译

      

    / your_vtk_folder /实施例/ GUI / QT / simple查看/

    使用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库

  4. 希望这有帮助,尊重