VTK未定义参考

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VTK未定义参考相关的知识,希望对你有一定的参考价值。

我按照建议的here安装了VTK 7.1.1。

我正在使用以下代码开发一个新项目:

#include <iostream>
#include <vtk-7.1/vtkImageData.h>
#include <vtk-7.1/vtkMetaImageReader.h>
#include <vtk-7.1/vtkSmartPointer.h>
#include <vtk-7.1/vtkRenderer.h>
#include <vtk-7.1/vtkImageActor.h>
#include <vtk-7.1/vtkImageMapper3D.h>
#include <vtk-7.1/vtkRenderWindow.h>
#include <vtk-7.1/vtkRenderWindowInteractor.h>

int main()
{
    vtkSmartPointer<vtkMetaImageReader> reader =  vtkSmartPointer<vtkMetaImageReader>::New();
    reader->SetFileName("Test.mhd");
    reader->Update();
    std::cout<<"Hello World";

    return 0;
}

我正在使用以下代码进行编译:

g++ -g -Wall -I /usr/local/include -L /usr/local/lib -o main main.cpp

但是,我不断收到如下错误:

/usr/local/include/vtk-7.1/vtkSmartPointer.h:29: error: undefined reference to `vtkSmartPointerBase::~vtkSmartPointerBase()'

知道为什么?我想可能是链接呢?

答案

您的假设是正确的,链接器命令缺少必需的VTK库。请查看以下链接以获取更多详细信息VTK in Makefiles

例如

g++ -g -Wall -I /usr/local/include -L/usr/local/lib -lvtkCommon -lvtkFiltering -lvtkImaging -lvtkGraphics -lvtkGenericFiltering -lvtkIO -lvtkRendering -lvtkVolumeRendering

为了简化VTK应用程序的构建,您可以使用CMake

以上是关于VTK未定义参考的主要内容,如果未能解决你的问题,请参考以下文章

未定义参考编译MITK/Qt

getSupportFragmentManager() 在活动扩展片段中未定义

VTK开发--错误集锦

win10环境下VTK7.1的编译和Qt调用VTK的详细教程(本文链接含VTK库和测试代码的分享)

片段中的自定义列表视图。未找到布局

传递嵌套在片段中的 AdapterView.OnItemClickListener() 中的活动上下文 - 方法未定义