我按照建议安装了 VTK 7.1.1 here .
我正在使用以下代码开发一个新项目:
#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
关于c++ - VTK 未定义引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48014656/