c++ - VTK 未定义引用

标签 c++ ubuntu linker linker-errors vtk

我按照建议安装了 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/

相关文章:

c++ - 在 Eclipse 中将 Boost 链接到我的 C++ 项目

c++ - 消除 MS Visual C++ 链接器警告 : "warning LNK4221"? 的最佳方法是什么

C++ STL,我想知道映射中的双向迭代器和运算符[]有什么不同

PHP 列出不存在的文件

c++ - TBB 链接器错误如何判断我是否缺少包含或代码是否已过时

ruby-on-rails - Rails Passenger/Capistrano/ubuntu 应用程序不提供 Assets

ubuntu - kubuntu 15.10 上没有 wicd-kde 客户端

C++ 一元 - 运算符重载无法编译

c++ - 如何使用 CMake 和 Eclipse CDT 自动删除构建文件?

c++ - 无法将来自外部共享库的信号连接到 QWidget 派生类的重载插槽