我非常成功地尝试构建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)......
有任何意见吗?
谢谢, 米格尔
答案 0 :(得分:0)
我不是VTK大师,而是你发布的内容:
警告
'/ TMP / QT-东西-6474 /源极/ QT-无处不开源-SRC-4.7.0 / lib中' 以下是-L未找到
是自我解释的。所有其他错误看起来都像是上面的错误。
你可以尝试做什么:
检查VTK是否已编译\安装了QT支持。例如,您可以尝试编译
/ your_vtk_folder /实施例/ GUI / QT / simple查看/
使用cmake。如果您正确编译和安装了QT和VTK,那么这样做应该没有任何问题。
接下来仔细检查vtk包含文件和库的位置。我的机器文件夹是:
标题:/usr/local/include/vtk-5.6
libs:/usr/local/lib/vtk-5.6 /
在* .pro文件中,您可以添加以下内容:
INCLUDEPATH + = /usr/local/include/vtk-5.6
LIBS + = -L / usr / local / lib / vtk-5.6 / -lvtkCommon -lvtksys -lQVTK ...项目所需的所有vtk库
希望这有帮助,尊重