<div class="gmail_quote">Hello everybody,<br>I hope this is the right place to ask this question. If a similar question was answered before please let me know the address of it.<br><br><div class="gmail_quote">I am trying to compile the attached program (which is one of Kitware&#39;s sample programs). I mainly aim to use VTK&#39;s BGL related algorithms with my graphs. But I could not compile this code. I have vtk5.2 and bgl 1.37 (and 1.36). <br>

<br>When I compile the sample file, I get the first error for the following line:<br>
&nbsp; VTK_CREATE(vtkBoostBiconnectedComponents, biconn);<br><div><br>(On CMake, I had set VTK_USE_BOOST set to ON when building VTK)<br></div><br>Have you seen an error like this? Do you think there is a problem with my boost installation. I will appreciate your help.<br>

Thanks a lot.<br>
Aytekin<br><br>I am getting the following linking errors. The sample program starts right after the error mesage (I think copying it to here was the easiest and least confusing way).<br><br>------------- Error Message starts here ------------- <br>
<br>1&gt;Compiling...<br>1&gt;bgl.cxx<br>1&gt;Linking...<br>1&gt;bgl.obj : error LNK2019: unresolved external symbol &quot;public: static class vtkBoostBiconnectedComponents * __cdecl vtkBoostBiconnectedComponents::New(void)&quot; (?New@vtkBoostBiconnectedComponents@@SAPAV1@XZ) referenced in function &quot;public: static class vtkSmartPointer&lt;class vtkBoostBiconnectedComponents&gt; __cdecl vtkSmartPointer&lt;class vtkBoostBiconnectedComponents&gt;::New(void)&quot; (?New@?$vtkSmartPointer@VvtkBoostBiconnectedComponents@@@@SA?AV1@XZ)<br>


<br>1&gt;bgl.obj : error LNK2019: unresolved external symbol &quot;public: static class vtkBoostBreadthFirstSearch * __cdecl vtkBoostBreadthFirstSearch::New(void)&quot; (?New@vtkBoostBreadthFirstSearch@@SAPAV1@XZ) referenced in function &quot;public: static class vtkSmartPointer&lt;class vtkBoostBreadthFirstSearch&gt; __cdecl vtkSmartPointer&lt;class vtkBoostBreadthFirstSearch&gt;::New(void)&quot; (?New@?$vtkSmartPointer@VvtkBoostBreadthFirstSearch@@@@SA?AV1@XZ)<br>


<br>1&gt;bgl.obj : error LNK2019: unresolved external symbol &quot;public: static class vtkBoostBrandesCentrality * __cdecl vtkBoostBrandesCentrality::New(void)&quot; (?New@vtkBoostBrandesCentrality@@SAPAV1@XZ) referenced in function &quot;public: static class vtkSmartPointer&lt;class vtkBoostBrandesCentrality&gt; __cdecl vtkSmartPointer&lt;class vtkBoostBrandesCentrality&gt;::New(void)&quot; (?New@?$vtkSmartPointer@VvtkBoostBrandesCentrality@@@@SA?AV1@XZ)<br>


<br>1&gt;bgl.obj : error LNK2019: unresolved external symbol &quot;public: static class vtkBoostConnectedComponents * __cdecl vtkBoostConnectedComponents::New(void)&quot; (?New@vtkBoostConnectedComponents@@SAPAV1@XZ) referenced in function &quot;public: static class vtkSmartPointer&lt;class vtkBoostConnectedComponents&gt; __cdecl vtkSmartPointer&lt;class vtkBoostConnectedComponents&gt;::New(void)&quot; (?New@?$vtkSmartPointer@VvtkBoostConnectedComponents@@@@SA?AV1@XZ)<br>


<br>1&gt;bgl.obj : error LNK2019: unresolved external symbol &quot;public: static class vtkBoostBreadthFirstSearchTree * __cdecl vtkBoostBreadthFirstSearchTree::New(void)&quot; (?New@vtkBoostBreadthFirstSearchTree@@SAPAV1@XZ) referenced in function &quot;public: static class vtkSmartPointer&lt;class vtkBoostBreadthFirstSearchTree&gt; __cdecl vtkSmartPointer&lt;class vtkBoostBreadthFirstSearchTree&gt;::New(void)&quot; (?New@?$vtkSmartPointer@VvtkBoostBreadthFirstSearchTree@@@@SA?AV1@XZ)<br>


<br>1&gt;C:\network\C++\bgl\bin\Release\bgl.exe : fatal error LNK1120: 5 unresolved externals<br><br>1&gt;Build log was saved at &quot;file://c:\network\C++\bgl\bin\bgl.dir\Release\BuildLog.htm&quot;<br>1&gt;bgl - 6 error(s), 0 warning(s)<br>


2&gt;------ Skipped Build: Project: ALL_BUILD, Configuration: Release Win32 ------<br>2&gt;Project not selected to build for this solution configuration <br>========== Build: 0 succeeded, 1 failed, 1 up-to-date, 1 skipped ==========<br>



</div><br>------------- Error Message Ends here ------------- <br><br><br>Here is the program:<br><br>/*=========================================================================<br><br>&nbsp; Program:&nbsp;&nbsp; Visualization Toolkit<br>
&nbsp; Module:&nbsp;&nbsp;&nbsp; $RCSfile: TestBoostAlgorithms.cxx,v $<br><br>&nbsp; Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen<br>&nbsp; All rights reserved.<br>&nbsp; See Copyright.txt or <a href="http://www.kitware.com/Copyright.htm">http://www.kitware.com/Copyright.htm</a> for details.<br>
<br>&nbsp;&nbsp;&nbsp;&nbsp; This software is distributed WITHOUT ANY WARRANTY; without even<br>&nbsp;&nbsp;&nbsp;&nbsp; the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR<br>&nbsp;&nbsp;&nbsp;&nbsp; PURPOSE.&nbsp; See the above copyright notice for more information.<br>
<br>=========================================================================*/<br>/*-------------------------------------------------------------------------<br>&nbsp; Copyright 2008 Sandia Corporation.<br>&nbsp; Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,<br>
&nbsp; the U.S. Government retains certain rights in this software.<br>-------------------------------------------------------------------------*/<br>#include &quot;vtkActor.h&quot;<br>#include &quot;vtkBoostBrandesCentrality.h&quot;<br>
#include &quot;vtkBoostBreadthFirstSearch.h&quot;<br>#include &quot;vtkBoostBreadthFirstSearchTree.h&quot;<br>#include &quot;vtkBoostConnectedComponents.h&quot;<br>#include &quot;vtkGlyph3D.h&quot;<br>#include &quot;vtkGlyphSource2D.h&quot;<br>
#include &quot;vtkGraphToPolyData.h&quot;<br>#include &quot;vtkGraphWriter.h&quot;<br>#include &quot;vtkMutableUndirectedGraph.h&quot;<br>#include &quot;vtkPolyDataMapper.h&quot;<br>#include &quot;vtkProperty.h&quot;<br>#include &quot;vtkRegressionTestImage.h&quot;<br>
#include &quot;vtkRenderer.h&quot;<br>#include &quot;vtkRenderWindow.h&quot;<br>#include &quot;vtkRenderWindowInteractor.h&quot;<br>#include &quot;vtkSmartPointer.h&quot;<br><br>#include &lt;boost/version.hpp&gt;<br>#include &quot;vtkBoostBiconnectedComponents.h&quot;<br>
<br>#define VTK_CREATE(type,name) \<br>&nbsp; vtkSmartPointer&lt;type&gt; name = vtkSmartPointer&lt;type&gt;::New()<br><br>template &lt;typename Algorithm&gt;<br>void RenderGraph(vtkRenderer* ren, Algorithm* alg, <br>&nbsp; double xoffset, double yoffset, <br>
&nbsp; const char* vertColorArray, double vertMin, double vertMax, <br>&nbsp; const char* edgeColorArray, double edgeMin, double edgeMax)<br>{<br>&nbsp; VTK_CREATE(vtkGraphToPolyData, graphToPoly);<br>&nbsp; graphToPoly-&gt;SetInputConnection(alg-&gt;GetOutputPort());<br>
<br>&nbsp; VTK_CREATE(vtkGlyphSource2D, glyph);<br>&nbsp; glyph-&gt;SetGlyphTypeToVertex();<br>&nbsp; VTK_CREATE(vtkGlyph3D, vertexGlyph);<br>&nbsp; vertexGlyph-&gt;SetInputConnection(0, graphToPoly-&gt;GetOutputPort());<br>&nbsp; vertexGlyph-&gt;SetInputConnection(1, glyph-&gt;GetOutputPort());<br>
&nbsp; VTK_CREATE(vtkPolyDataMapper, vertexMapper);<br>&nbsp; vertexMapper-&gt;SetInputConnection(vertexGlyph-&gt;GetOutputPort());<br>&nbsp; vertexMapper-&gt;SetScalarModeToUsePointFieldData();<br>&nbsp; if (vertColorArray)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; vertexMapper-&gt;SelectColorArray(vertColorArray);<br>
&nbsp;&nbsp;&nbsp; vertexMapper-&gt;SetScalarRange(vertMin, vertMax);<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp; VTK_CREATE(vtkActor, vertexActor);<br>&nbsp; vertexActor-&gt;SetMapper(vertexMapper);<br>&nbsp; vertexActor-&gt;GetProperty()-&gt;SetPointSize(10.0);<br>&nbsp; vertexActor-&gt;SetPosition(xoffset, yoffset, 0.001);<br>
<br>&nbsp; VTK_CREATE(vtkPolyDataMapper, edgeMapper);<br>&nbsp; edgeMapper-&gt;SetInputConnection(graphToPoly-&gt;GetOutputPort());<br>&nbsp; edgeMapper-&gt;SetScalarModeToUseCellFieldData();<br>&nbsp; if (edgeColorArray)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; edgeMapper-&gt;SelectColorArray(edgeColorArray);<br>
&nbsp;&nbsp;&nbsp; edgeMapper-&gt;SetScalarRange(edgeMin, edgeMax);<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp; VTK_CREATE(vtkActor, edgeActor);<br>&nbsp; edgeActor-&gt;SetMapper(edgeMapper);<br>&nbsp; edgeActor-&gt;SetPosition(xoffset, yoffset, 0);<br><br>&nbsp; ren-&gt;AddActor(vertexActor);<br>
&nbsp; ren-&gt;AddActor(edgeActor);<br>}<br><br>int main(int argc, char* argv[])<br>{<br>&nbsp; // Create the test graph<br>&nbsp; VTK_CREATE(vtkMutableUndirectedGraph, g);<br><br>&nbsp; VTK_CREATE(vtkPoints, pts);<br>&nbsp; g-&gt;AddVertex();<br>
&nbsp; pts-&gt;InsertNextPoint(0, 1, 0);<br>&nbsp; g-&gt;AddVertex();<br>&nbsp; pts-&gt;InsertNextPoint(0.5, 1, 0);<br>&nbsp; g-&gt;AddVertex();<br>&nbsp; pts-&gt;InsertNextPoint(0.25, 0.5, 0);<br>&nbsp; g-&gt;AddVertex();<br>&nbsp; pts-&gt;InsertNextPoint(0, 0, 0);<br>
&nbsp; g-&gt;AddVertex();<br>&nbsp; pts-&gt;InsertNextPoint(0.5, 0, 0);<br>&nbsp; g-&gt;AddVertex();<br>&nbsp; pts-&gt;InsertNextPoint(1, 0, 0);<br>&nbsp; g-&gt;AddVertex();<br>&nbsp; pts-&gt;InsertNextPoint(0.75, 0.5, 0);<br>&nbsp; g-&gt;SetPoints(pts);<br>
<br>&nbsp; g-&gt;AddEdge(0, 1);<br>&nbsp; g-&gt;AddEdge(0, 2);<br>&nbsp; g-&gt;AddEdge(1, 2);<br>&nbsp; g-&gt;AddEdge(2, 3);<br>&nbsp; g-&gt;AddEdge(2, 4);<br>&nbsp; g-&gt;AddEdge(3, 4);<br><br>&nbsp; VTK_CREATE(vtkRenderer, ren);<br><br>&nbsp; // Test biconnected components<br>
&nbsp; // Only available in Boost 1.33 or later<br>&nbsp; VTK_CREATE(vtkBoostBiconnectedComponents, biconn);<br>&nbsp; biconn-&gt;SetInput(g);<br>&nbsp; RenderGraph(ren, biconn.GetPointer(), 0, 0, &quot;biconnected component&quot;, -1, 3, &quot;biconnected component&quot;, -1, 3);<br>
<br><br>&nbsp; // Test breadth first search<br>&nbsp; VTK_CREATE(vtkBoostBreadthFirstSearch, bfs);<br>&nbsp; bfs-&gt;SetInput(g);<br>&nbsp; RenderGraph(ren, bfs.GetPointer(), 2, 0, &quot;BFS&quot;, 0, 3, NULL, 0, 0);<br><br>&nbsp; // Test centrality<br>
&nbsp; VTK_CREATE(vtkBoostBrandesCentrality, centrality);<br>&nbsp; centrality-&gt;SetInput(g);<br>&nbsp; RenderGraph(ren, centrality.GetPointer(), 0, 2, &quot;centrality&quot;, 0, 1, NULL, 0, 0);<br><br>&nbsp; // Test connected components<br>
&nbsp; VTK_CREATE(vtkBoostConnectedComponents, comp);<br>&nbsp; comp-&gt;SetInput(g);<br>&nbsp; RenderGraph(ren, comp.GetPointer(), 2, 2, &quot;component&quot;, 0, 2, NULL, 0, 0);<br><br>&nbsp; // Test breadth first search tree<br>&nbsp; VTK_CREATE(vtkBoostBreadthFirstSearchTree, bfsTree);<br>
&nbsp; bfsTree-&gt;SetInput(g);<br>&nbsp; VTK_CREATE(vtkBoostBreadthFirstSearch, bfs2);<br>&nbsp; bfs2-&gt;SetInputConnection(bfsTree-&gt;GetOutputPort());<br>&nbsp; RenderGraph(ren, bfs2.GetPointer(), 0, 4, &quot;BFS&quot;, 0, 3, NULL, 0, 0);<br>
<br>&nbsp; VTK_CREATE(vtkRenderWindowInteractor, iren);<br>&nbsp; VTK_CREATE(vtkRenderWindow, win);<br>&nbsp; win-&gt;AddRenderer(ren);<br>&nbsp; win-&gt;SetInteractor(iren);<br><br>&nbsp; win-&gt;Render();<br><br>&nbsp; int retVal = vtkRegressionTestImage(win);<br>
&nbsp; if (retVal == vtkRegressionTester::DO_INTERACTOR)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; win-&gt;Render();<br>&nbsp;&nbsp;&nbsp; iren-&gt;Start();<br>&nbsp;&nbsp;&nbsp; retVal = vtkRegressionTester::PASSED;<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp; return !retVal;<br>}<br><br><br></div><br>