I try to compile a vtk example from here (<a href="http://www.vtk.org/Wiki/VTK/Examples/Cxx/ImageData/IterateImageData">http://www.vtk.org/Wiki/VTK/Examples/Cxx/ImageData/IterateImageData</a>)<div><font class="Apple-style-span" face="monospace" size="2"><span class="Apple-style-span" style="font-size: 10px; white-space: pre;"><font class="Apple-style-span" face="arial"><span class="Apple-style-span" style="white-space: normal; font-size: small;"><br>
</span></font></span></font></div><div><font class="Apple-style-span" face="monospace" size="2"><span class="Apple-style-span" style="font-size: 10px; white-space: pre;"><font class="Apple-style-span" face="arial"><span class="Apple-style-span" style="white-space: normal; font-size: small;">ImageData.cpp:</span></font></span></font></div>
<div><font class="Apple-style-span" face="monospace" size="2"><span class="Apple-style-span" style="font-size: 10px; white-space: pre;"><font class="Apple-style-span" face="arial"><span class="Apple-style-span" style="white-space: normal; font-size: small;"><div>
<b>#include <vtkSmartPointer.h></b></div><div><b>#include <vtkImageData.h></b></div><div><b><br></b></div><div><b>int main(int, char *[]) {</b></div><div><b><br></b></div><div><b><br></b></div><div><span class="Apple-tab-span" style="white-space:pre"><b>        </b></span><b>// Create an image data</b></div>
<div><span class="Apple-tab-span" style="white-space:pre"><b>        </b></span><b>vtkSmartPointer <vtkImageData> imageData</b><span class="Apple-tab-span" style="white-space:pre"><b>        </b></span><b>= vtkSmartPointer<vtkImageData>::New();</b></div>
<div><b><br></b></div><div><span class="Apple-tab-span" style="white-space:pre"><b>        </b></span><b>// Specify the size of the image data</b></div><div><span class="Apple-tab-span" style="white-space:pre"><b>        </b></span><b>imageData->SetDimensions(2, 3, 1);</b></div>
<div><span class="Apple-tab-span" style="white-space:pre"><b>        </b></span><b>imageData->SetNumberOfScalarComponents(1);</b></div><div><span class="Apple-tab-span" style="white-space:pre"><b>        </b></span><b>imageData->SetScalarTypeToDouble();</b></div>
<div><b><br></b></div><div><span class="Apple-tab-span" style="white-space:pre"><b>        </b></span><b>int* dims = imageData->GetDimensions();</b></div><div><span class="Apple-tab-span" style="white-space:pre"><b>        </b></span><b>// int dims[3]; // can't do this</b></div>
<div><b><br></b></div><div><span class="Apple-tab-span" style="white-space:pre"><b>        </b></span><b>std::cout << "Dims: " << " x: " << dims[0] << " y: " << dims[1] << " z: "</b></div>
<div><span class="Apple-tab-span" style="white-space:pre"><b>                        </b></span><b><< dims[2] << std::endl;</b></div><div><b><br></b></div><div><span class="Apple-tab-span" style="white-space:pre"><b>        </b></span><b>std::cout << "Number of points: " << imageData->GetNumberOfPoints()</b></div>
<div><span class="Apple-tab-span" style="white-space:pre"><b>                        </b></span><b><< std::endl;</b></div><div><span class="Apple-tab-span" style="white-space:pre"><b>        </b></span><b>std::cout << "Number of cells: " << imageData->GetNumberOfCells()</b></div>
<div><span class="Apple-tab-span" style="white-space:pre"><b>                        </b></span><b><< std::endl;</b></div><div><b><br></b></div><div><span class="Apple-tab-span" style="white-space:pre"><b>        </b></span><b>//fill every entry of the image data with "2.0"</b></div>
<div><span class="Apple-tab-span" style="white-space:pre"><b>        </b></span><b>for (int z = 0; z < dims[2]; z++) {</b></div><div><span class="Apple-tab-span" style="white-space:pre"><b>                </b></span><b>for (int y = 0; y < dims[1]; y++) {</b></div>
<div><span class="Apple-tab-span" style="white-space:pre"><b>                        </b></span><b>for (int x = 0; x < dims[0]; x++) {</b></div><div><span class="Apple-tab-span" style="white-space:pre"><b>                                </b></span><b>double* pixel =</b></div>
<div><span class="Apple-tab-span" style="white-space:pre"><b>                                                </b></span><b>static_cast<double*> (imageData->GetScalarPointer(x, y,</b></div><div><span class="Apple-tab-span" style="white-space:pre"><b>                                                                </b></span><b>z));</b></div>
<div><span class="Apple-tab-span" style="white-space:pre"><b>                                </b></span><b>pixel[0] = 2.0;</b></div><div><span class="Apple-tab-span" style="white-space:pre"><b>                        </b></span><b>}</b></div><div><span class="Apple-tab-span" style="white-space:pre"><b>                </b></span><b>}</b></div>
<div><span class="Apple-tab-span" style="white-space:pre"><b>        </b></span><b>}</b></div><div><b><br></b></div><div><span class="Apple-tab-span" style="white-space:pre"><b>        </b></span><b>//retrieve the entries from the image data and print them to the screen</b></div>
<div><span class="Apple-tab-span" style="white-space:pre"><b>        </b></span><b>for (int z = 0; z < dims[2]; z++) {</b></div><div><span class="Apple-tab-span" style="white-space:pre"><b>                </b></span><b>for (int y = 0; y < dims[1]; y++) {</b></div>
<div><span class="Apple-tab-span" style="white-space:pre"><b>                        </b></span><b>for (int x = 0; x < dims[0]; x++) {</b></div><div><span class="Apple-tab-span" style="white-space:pre"><b>                                </b></span><b>double* pixel =</b></div>
<div><span class="Apple-tab-span" style="white-space:pre"><b>                                                </b></span><b>static_cast<double*> (imageData->GetScalarPointer(x, y,</b></div><div><span class="Apple-tab-span" style="white-space:pre"><b>                                                                </b></span><b>z));</b></div>
<div><span class="Apple-tab-span" style="white-space:pre"><b>                                </b></span><b>// do something with v</b></div><div><span class="Apple-tab-span" style="white-space:pre"><b>                                </b></span><b>std::cout << pixel[0] << " ";</b></div>
<div><span class="Apple-tab-span" style="white-space:pre"><b>                        </b></span><b>}</b></div><div><span class="Apple-tab-span" style="white-space:pre"><b>                        </b></span><b>std::cout << std::endl;</b></div><div><span class="Apple-tab-span" style="white-space:pre"><b>                </b></span><b>}</b></div>
<div><span class="Apple-tab-span" style="white-space:pre"><b>                </b></span><b>std::cout << std::endl;</b></div><div><span class="Apple-tab-span" style="white-space:pre"><b>        </b></span><b>}</b></div><div><b><br></b></div>
<div><span class="Apple-tab-span" style="white-space:pre"><b>        </b></span><b>return 0;</b></div><div><b>}</b></div><div><br></div><div><br></div><div>I compile it with command line:</div><div><b>g++ -Wno-deprecated -I/home/megauser/libs/vtk-installed/include/vtk-5.6/ -L/home/megauser/libs/vtk-installed/lib/vtk-5.6/ -lvtkHybrid ImageData.cpp</b></div>
<div><br></div><div>But I get this compilation errors:</div><div><div><b>/tmp/ccVO1Ty2.o: In function `main':</b></div><div><b>VtkImageDataWriter.cpp:(.text+0x6b): undefined reference to `vtkImageData::SetNumberOfScalarComponents(int)'</b></div>
<div><b>/tmp/ccVO1Ty2.o: In function `vtkImageData::SetScalarTypeToDouble()':</b></div><div><b>VtkImageDataWriter.cpp:(.text._ZN12vtkImageData21SetScalarTypeToDoubleEv[vtkImageData::SetScalarTypeToDouble()]+0x15): undefined reference to `vtkImageData::SetScalarType(int)'</b></div>
<div><b>/tmp/ccVO1Ty2.o: In function `vtkSmartPointer<vtkImageData>::~vtkSmartPointer()':</b></div><div><b>VtkImageDataWriter.cpp:(.text._ZN15vtkSmartPointerI12vtkImageDataED1Ev[vtkSmartPointer<vtkImageData>::~vtkSmartPointer()]+0xd): undefined reference to `vtkSmartPointerBase::~vtkSmartPointerBase()'</b></div>
<div><b>/tmp/ccVO1Ty2.o: In function `vtkSmartPointer<vtkImageData>::New()':</b></div><div><b>VtkImageDataWriter.cpp:(.text._ZN15vtkSmartPointerI12vtkImageDataE3NewEv[vtkSmartPointer<vtkImageData>::New()]+0xe): undefined reference to `vtkImageData::New()'</b></div>
<div><b>/tmp/ccVO1Ty2.o: In function `vtkSmartPointer<vtkImageData>::vtkSmartPointer(vtkImageData*, vtkSmartPointerBase::NoReference const&)':</b></div><div><b>VtkImageDataWriter.cpp:(.text._ZN15vtkSmartPointerI12vtkImageDataEC1EPS0_RKN19vtkSmartPointerBase11NoReferenceE[vtkSmartPointer<vtkImageData>::vtkSmartPointer(vtkImageData*, vtkSmartPointerBase::NoReference const&)]+0x1b): undefined reference to `vtkSmartPointerBase::vtkSmartPointerBase(vtkObjectBase*, vtkSmartPointerBase::NoReference const&)'</b></div>
<div><b>collect2: ld returned 1 exit status</b></div></div><div><b><br></b></div><div>How to build this example properly?</div><div>Thanks!</div><div><br></div></span></font></span></font></div>