<HTML><BODY style="word-wrap: break-word; -khtml-nbsp-mode: space; -khtml-line-break: after-white-space; ">Hi all,<DIV><BR class="khtml-block-placeholder"></DIV><DIV>I'm get the following error in my code when I include the ga.h or the GA1DArrayGenome.h file:</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV style="text-indent: -32px;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 32px; "><FONT class="Apple-style-span" face="Courier" size="3"><SPAN class="Apple-style-span" style="font-size: 11px;"><I>/usr/bin/ld: Undefined symbols:</I></SPAN></FONT></DIV><DIV style="text-indent: -32px;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 32px; "><FONT class="Apple-style-span" face="Courier" size="3"><SPAN class="Apple-style-span" style="font-size: 11px;"><I>int operator==&lt;OpenMesh::EdgeHandle&gt;(OpenMesh::EdgeHandle const&amp;, OpenMesh::EdgeHandle const&amp;)</I></SPAN></FONT></DIV><DIV style="text-indent: -32px;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 32px; "><FONT class="Apple-style-span" face="Courier" size="3"><SPAN class="Apple-style-span" style="font-size: 11px;"><I>int operator==&lt;OpenMesh::FaceHandle&gt;(OpenMesh::FaceHandle const&amp;, OpenMesh::FaceHandle const&amp;)</I></SPAN></FONT></DIV><DIV style="text-indent: -32px;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 32px; "><FONT class="Apple-style-span" face="Courier" size="3"><SPAN class="Apple-style-span" style="font-size: 11px;"><I>int operator==&lt;OpenMesh::VertexHandle&gt;(OpenMesh::VertexHandle const&amp;, OpenMesh::VertexHandle const&amp;)</I></SPAN></FONT></DIV><DIV style="text-indent: -32px;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 32px; "><FONT class="Apple-style-span" face="Courier" size="3"><SPAN class="Apple-style-span" style="font-size: 11px;"><I>int operator==&lt;OpenMesh::HalfedgeHandle&gt;(OpenMesh::HalfedgeHandle const&amp;, OpenMesh::HalfedgeHandle const&amp;)</I></SPAN></FONT></DIV><DIV style="text-indent: -32px;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 32px; "><FONT class="Apple-style-span" face="Courier" size="3"><SPAN class="Apple-style-span" style="font-size: 11px;"><I>int operator!=&lt;OpenMesh::HalfedgeHandle&gt;(OpenMesh::HalfedgeHandle const&amp;, OpenMesh::HalfedgeHandle const&amp;)</I></SPAN></FONT></DIV><DIV style="text-indent: -32px;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 32px; "><FONT class="Apple-style-span" face="Courier" size="3"><SPAN class="Apple-style-span" style="font-size: 11px;"><I>collect2: ld returned 1 exit status<FONT class="Apple-style-span" face="Helvetica" size="3"><SPAN class="Apple-style-span" style="font-size: 12px; font-style: normal;"></SPAN></FONT></I></SPAN></FONT></DIV><DIV style="text-indent: -32px;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 32px; "><BR class="khtml-block-placeholder"></DIV><DIV style="text-indent: -32px;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 32px; ">The problem seems to be related to how templates are instantiated. The OpenMesh::EdgeHandle data structure is a template that inherits from a standard vector, and of course doesn't have (or need to have) an int operator== defined for it. It seems that somehow the GA1DArrayGenome (or some other template in ga.h) has overridden that operator, but now the linker is looking for definitions of that operator in other templates. </DIV><DIV style="text-indent: -32px;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 32px; "><BR class="khtml-block-placeholder"></DIV><DIV style="text-indent: -32px;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 32px; ">A couple of other things I should mention: I am team developing with someone who uses VC++ 7.0 (I'm using XCode/gcc/g++ toolchain on a mac) and he does not get this error compiling the same exact code. This is leading me to suspect that it has something to do with how VC++ compiler hands automatic template instantiation as compared to gcc/g++ and ld. Therefore, I'm hoping this can be fixed with a simple compiler flag, but I don't know what that flag should be. Using -fno-implicit-templates created a lot of other errors because it's very difficult for me to know all the templates that will be necessary and instantiate them manually. </DIV><DIV style="text-indent: -32px;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 32px; "><BR class="khtml-block-placeholder"></DIV><DIV style="text-indent: -32px;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 32px; ">Any help anyone can offer, is greatly appreciated.</DIV><DIV style="text-indent: -32px;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 32px; "><BR class="khtml-block-placeholder"></DIV><DIV style="text-indent: -32px;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 32px; ">Thanks,</DIV><DIV style="text-indent: -32px;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 32px; ">Aaron </DIV></BODY></HTML>