2017-12-28 31 views
0

제안 된대로 VTK 7.1.1이 설치되었습니다. here.VTK 정의되지 않음 참조

나는 다음과 같은 코드를 사용하여 새 프로젝트에서 일하고 있어요 : 내가 컴파일하려면 다음을 사용하고

#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()' 

왜 그런가? 어쩌면 연결일지도 모른다고 생각해?

+0

*** 나는 그것이 어쩌면 연결을 것 같아요? *** 예, 당신이하지 않는 것 당신이 CMake를 사용할 수 귀하의 VTK 애플리케이션 구축을 쉽게하기 위해 예를 들어

vtk 라이브러리에 링크해야합니다. 그 말로는 CMake가 VTK 기반 프로젝트를위한 Makefile을 생성하는 것이 더 낫다고 말했습니다. – drescherjm

답변

0

올바른 가정입니다. 링커 명령에 필수 VTK 라이브러리가 없습니다. VTK in Makefiles에 대한 자세한 내용은 다음 링크를 참조하십시오.

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

+0

CMake를 사용하면 모든 라이브러리를 작성하는 것이 상당히 번거롭기 때문에 (특히 버전에 추가되기 때문에) 삶이 더 간단해질 것이라고 생각합니다. 감사! – user3126802