From: Brendan M. <bre...@gm...> - 2010-12-09 03:27:36
|
G'day Maintainers, I'm having a bit of trouble getting a successful compilation with the latest trunk (no errors on the dashboard). Compilation is fine on my mac, but not on a 64 bit linux machine. My guess is that it is something to do with static template members, but after a bit of hacking, I was unable to resolve the problem. So I'm hoping someone else has come across it. It seems almost certain that it has something to do with the setup on the machine. Here is the issue: uname -a Linux 2.6.31.9-174.fc12.x86_64 #1 SMP Mon Dec 21 05:33:33 UTC 2009 x86_64 x86_64 x86_64 GNU/Linux gcc --version gcc (GCC) 4.4.2 20091027 (Red Hat 4.4.2-7) Error: /usr/bin/c++ -fPIC -fPIC CMakeFiles/vgl_test_all.dir/test_driver.o CMakeFiles/vgl_test_all.dir/test_cartesian.o CMakeFiles/vgl_test_all.dir/test_distance.o CMakeFiles/vgl_test_all.dir/test_closest_point.o CMakeFiles/vgl_test_all.dir/test_conic.o CMakeFiles/vgl_test_all.dir/test_homg.o CMakeFiles/vgl_test_all.dir/test_polygon.o CMakeFiles/vgl_test_all.dir/test_convex.o CMakeFiles/vgl_test_all.dir/test_polygon_scan_iterator.o CMakeFiles/vgl_test_all.dir/test_triangle_scan_iterator.o CMakeFiles/vgl_test_all.dir/test_ellipse_scan_iterator.o CMakeFiles/vgl_test_all.dir/test_window_scan_iterator.o CMakeFiles/vgl_test_all.dir/test_area.o CMakeFiles/vgl_test_all.dir/test_clip.o CMakeFiles/vgl_test_all.dir/test_h_matrix_1d.o CMakeFiles/vgl_test_all.dir/test_h_matrix_2d.o CMakeFiles/vgl_test_all.dir/test_h_matrix_3d.o CMakeFiles/vgl_test_all.dir/test_fit_lines_2d.o CMakeFiles/vgl_test_all.dir/test_fit_conics_2d.o CMakeFiles/vgl_test_all.dir/test_p_matrix.o CMakeFiles/vgl_test_all.dir/test_convex_hull_2d.o CMakeFiles/vgl_test_all.dir/test_sphere.o CMakeFiles/vgl_test_all.dir/test_line_3d_2_points.o CMakeFiles/vgl_test_all.dir/test_line_segment_3d.o CMakeFiles/vgl_test_all.dir/test_orient_box_3d.o CMakeFiles/vgl_test_all.dir/test_fit_plane_3d.o CMakeFiles/vgl_test_all.dir/test_intersection.o CMakeFiles/vgl_test_all.dir/test_rotation_3d.o CMakeFiles/vgl_test_all.dir/test_triangle_3d.o CMakeFiles/vgl_test_all.dir/test_triangle_3d_line_intersection.o CMakeFiles/vgl_test_all.dir/test_rtree.o CMakeFiles/vgl_test_all.dir/test_ellipsoid.o CMakeFiles/vgl_test_all.dir/test_infinite_line_3d.o CMakeFiles/vgl_test_all.dir/test_ray_3d.o -o vgl_test_all -rdynamic ../../../lib/libvgl_algo.a ../../../lib/libvgl.a ../../../lib/libtestlib.a ../../../lib/libvnl_algo.a ../../../lib/libnetlib.a ../../../lib/libv3p_netlib.a ../../../lib/libvnl.a ../../../lib/libvcl.a -lm CMakeFiles/vgl_test_all.dir/test_cartesian.o: In function `vgl_point_3d<int>::operator==(vgl_point_3d<int> const&) const': test_cartesian.cxx:(.text._ZNK12vgl_point_3dIiEeqERKS0_[vgl_point_3d<int>::operator==(vgl_point_3d<int> const&) const]+0x34): undefined reference to `vgl_tolerance<int>::position' test_cartesian.cxx:(.text._ZNK12vgl_point_3dIiEeqERKS0_[vgl_point_3d<int>::operator==(vgl_point_3d<int> const&) const]+0x59): undefined reference to `vgl_tolerance<int>::position' test_cartesian.cxx:(.text._ZNK12vgl_point_3dIiEeqERKS0_[vgl_point_3d<int>::operator==(vgl_point_3d<int> const&) const]+0x7f): undefined reference to `vgl_tolerance<int>::position' test_cartesian.cxx:(.text._ZNK12vgl_point_3dIiEeqERKS0_[vgl_point_3d<int>::operator==(vgl_point_3d<int> const&) const]+0xa1): undefined reference to `vgl_tolerance<int>::position' test_cartesian.cxx:(.text._ZNK12vgl_point_3dIiEeqERKS0_[vgl_point_3d<int>::operator==(vgl_point_3d<int> const&) const]+0xc3): undefined reference to `vgl_tolerance<int>::position' CMakeFiles/vgl_test_all.dir/test_cartesian.o:test_cartesian.cxx:(.text._ZNK12vgl_point_3dIiEeqERKS0_[vgl_point_3d<int>::operator==(vgl_point_3d<int> const&) const]+0xe5): more undefined references to `vgl_tolerance<int>::position' follow CMakeFiles/vgl_test_all.dir/test_cartesian.o: In function `vgl_point_3d<double>::operator==(vgl_point_3d<double> const&) const': test_cartesian.cxx:(.text._ZNK12vgl_point_3dIdEeqERKS0_[vgl_point_3d<double>::operator==(vgl_point_3d<double> const&) const]+0x3a): undefined reference to `vgl_tolerance<double>::position' test_cartesian.cxx:(.text._ZNK12vgl_point_3dIdEeqERKS0_[vgl_point_3d<double>::operator==(vgl_point_3d<double> const&) const]+0x76): undefined reference to `vgl_tolerance<double>::position' test_cartesian.cxx:(.text._ZNK12vgl_point_3dIdEeqERKS0_[vgl_point_3d<double>::operator==(vgl_point_3d<double> const&) const]+0xaf): undefined reference to `vgl_tolerance<double>::position' test_cartesian.cxx:(.text._ZNK12vgl_point_3dIdEeqERKS0_[vgl_point_3d<double>::operator==(vgl_point_3d<double> const&) const]+0xec): undefined reference to `vgl_tolerance<double>::position' test_cartesian.cxx:(.text._ZNK12vgl_point_3dIdEeqERKS0_[vgl_point_3d<double>::operator==(vgl_point_3d<double> const&) const]+0x121): undefined reference to `vgl_tolerance<double>::position' CMakeFiles/vgl_test_all.dir/test_cartesian.o:test_cartesian.cxx:(.text._ZNK12vgl_point_3dIdEeqERKS0_[vgl_point_3d<double>::operator==(vgl_point_3d<double> const&) const]+0x15a): more undefined references to `vgl_tolerance<double>::position' follow CMakeFiles/vgl_test_all.dir/test_cartesian.o: In function `vgl_point_3d<float>::operator==(vgl_point_3d<float> const&) const': test_cartesian.cxx:(.text._ZNK12vgl_point_3dIfEeqERKS0_[vgl_point_3d<float>::operator==(vgl_point_3d<float> const&) const]+0x3a): undefined reference to `vgl_tolerance<float>::position' test_cartesian.cxx:(.text._ZNK12vgl_point_3dIfEeqERKS0_[vgl_point_3d<float>::operator==(vgl_point_3d<float> const&) const]+0x75): undefined reference to `vgl_tolerance<float>::position' test_cartesian.cxx:(.text._ZNK12vgl_point_3dIfEeqERKS0_[vgl_point_3d<float>::operator==(vgl_point_3d<float> const&) const]+0xad): undefined reference to `vgl_tolerance<float>::position' test_cartesian.cxx:(.text._ZNK12vgl_point_3dIfEeqERKS0_[vgl_point_3d<float>::operator==(vgl_point_3d<float> const&) const]+0xe9): undefined reference to `vgl_tolerance<float>::position' test_cartesian.cxx:(.text._ZNK12vgl_point_3dIfEeqERKS0_[vgl_point_3d<float>::operator==(vgl_point_3d<float> const&) const]+0x11d): undefined reference to `vgl_tolerance<float>::position' CMakeFiles/vgl_test_all.dir/test_cartesian.o:test_cartesian.cxx:(.text._ZNK12vgl_point_3dIfEeqERKS0_[vgl_point_3d<float>::operator==(vgl_point_3d<float> const&) const]+0x155): more undefined references to `vgl_tolerance<float>::position' follow CMakeFiles/vgl_test_all.dir/test_cartesian.o: In function `bool vgl_lineseg_test_point<double>(vgl_point_2d<double> const&, vgl_line_segment_2d<double> const&)': test_cartesian.cxx:(.text._Z22vgl_lineseg_test_pointIdEbRK12vgl_point_2dIT_ERK19vgl_line_segment_2dIS1_E[bool vgl_lineseg_test_point<double>(vgl_point_2d<double> const&, vgl_line_segment_2d<double> const&)]+0x1fa): undefined reference to `vgl_tolerance<double>::position' CMakeFiles/vgl_test_all.dir/test_cartesian.o: In function `bool coplanar<double>(vgl_point_3d<double> const&, vgl_point_3d<double> const&, vgl_point_3d<double> const&, vgl_point_3d<double> const&)': test_cartesian.cxx:(.text._Z8coplanarIdEbRK12vgl_point_3dIT_ES4_S4_S4_[bool coplanar<double>(vgl_point_3d<double> const&, vgl_point_3d<double> const&, vgl_point_3d<double> const&, vgl_point_3d<double> const&)]+0x6f3): undefined reference to `vgl_tolerance<double>::point_3d_coplanarity' test_cartesian.cxx:(.text._Z8coplanarIdEbRK12vgl_point_3dIT_ES4_S4_S4_[bool coplanar<double>(vgl_point_3d<double> const&, vgl_point_3d<double> const&, vgl_point_3d<double> const&, vgl_point_3d<double> const&)]+0x70a): undefined reference to `vgl_tolerance<double>::point_3d_coplanarity' CMakeFiles/vgl_test_all.dir/test_rotation_3d.o: In function `vgl_rotation_3d<double>::vgl_rotation_3d(vnl_vector_fixed<double, 3u> const&, vnl_vector_fixed<double, 3u> const&)': test_rotation_3d.cxx:(.text._ZN15vgl_rotation_3dIdEC1ERK16vnl_vector_fixedIdLj3EES4_[vgl_rotation_3d<double>::vgl_rotation_3d(vnl_vector_fixed<double, 3u> const&, vnl_vector_fixed<double, 3u> const&)]+0x14a): undefined reference to `vgl_tolerance<double>::position' CMakeFiles/vgl_test_all.dir/test_rotation_3d.o: In function `vgl_rotation_3d<vnl_rational>::vgl_rotation_3d(vnl_vector_fixed<vnl_rational, 3u> const&, vnl_vector_fixed<vnl_rational, 3u> const&)': test_rotation_3d.cxx:(.text._ZN15vgl_rotation_3dI12vnl_rationalEC1ERK16vnl_vector_fixedIS0_Lj3EES5_[vgl_rotation_3d<vnl_rational>::vgl_rotation_3d(vnl_vector_fixed<vnl_rational, 3u> const&, vnl_vector_fixed<vnl_rational, 3u> const&)]+0x250): undefined reference to `vgl_tolerance<double>::position' CMakeFiles/vgl_test_all.dir/test_rotation_3d.o: In function `vgl_rotation_3d<float>::vgl_rotation_3d(vnl_vector_fixed<float, 3u> const&, vnl_vector_fixed<float, 3u> const&)': test_rotation_3d.cxx:(.text._ZN15vgl_rotation_3dIfEC1ERK16vnl_vector_fixedIfLj3EES4_[vgl_rotation_3d<float>::vgl_rotation_3d(vnl_vector_fixed<float, 3u> const&, vnl_vector_fixed<float, 3u> const&)]+0x15a): undefined reference to `vgl_tolerance<double>::position' ../../../lib/libvgl.a(vgl_vector_3d+float-.o): In function `vgl_vector_3d<float> orthogonal_vectors<float>(vgl_vector_3d<float> const&, double)': vgl_vector_3d+float-.cxx:(.text._Z18orthogonal_vectorsIfE13vgl_vector_3dIT_ERKS2_d[vgl_vector_3d<float> orthogonal_vectors<float>(vgl_vector_3d<float> const&, double)]+0xa7): undefined reference to `vgl_tolerance<float>::position' ../../../lib/libvgl.a(vgl_polygon+double-.o): In function `void vgl_selfintersections<double>(vgl_polygon<double> const&, std::vector<std::pair<unsigned int, unsigned int>, std::allocator<std::pair<unsigned int, unsigned int> > >&, std::vector<std::pair<unsigned int, unsigned int>, std::allocator<std::pair<unsigned int, unsigned int> > >&, std::vector<vgl_point_2d<double>, std::allocator<vgl_point_2d<double> > >&)': vgl_polygon+double-.cxx:(.text._Z21vgl_selfintersectionsIdEvRK11vgl_polygonIT_ERSt6vectorISt4pairIjjESaIS7_EESA_RS5_I12vgl_point_2dIS1_ESaISC_EE[void vgl_selfintersections<double>(vgl_polygon<double> const&, std::vector<std::pair<unsigned int, unsigned int>, std::allocator<std::pair<unsigned int, unsigned int> > >&, std::vector<std::pair<unsigned int, unsigned int>, std::allocator<std::pair<unsigned int, unsigned int> > >&, std::vector<vgl_point_2d<double>, std::allocator<vgl_point_2d<double> > >&)]+0x2d): undefined reference to `vgl_tolerance<double>::position' ../../../lib/libvgl.a(vgl_vector_3d+int-.o): In function `vgl_vector_3d<int> orthogonal_vectors<int>(vgl_vector_3d<int> const&, double)': vgl_vector_3d+int-.cxx:(.text._Z18orthogonal_vectorsIiE13vgl_vector_3dIT_ERKS2_d[vgl_vector_3d<int> orthogonal_vectors<int>(vgl_vector_3d<int> const&, double)]+0xa8): undefined reference to `vgl_tolerance<int>::position' ../../../lib/libvgl.a(vgl_polygon+float-.o): In function `void vgl_selfintersections<float>(vgl_polygon<float> const&, std::vector<std::pair<unsigned int, unsigned int>, std::allocator<std::pair<unsigned int, unsigned int> > >&, std::vector<std::pair<unsigned int, unsigned int>, std::allocator<std::pair<unsigned int, unsigned int> > >&, std::vector<vgl_point_2d<float>, std::allocator<vgl_point_2d<float> > >&)': vgl_polygon+float-.cxx:(.text._Z21vgl_selfintersectionsIfEvRK11vgl_polygonIT_ERSt6vectorISt4pairIjjESaIS7_EESA_RS5_I12vgl_point_2dIS1_ESaISC_EE[void vgl_selfintersections<float>(vgl_polygon<float> const&, std::vector<std::pair<unsigned int, unsigned int>, std::allocator<std::pair<unsigned int, unsigned int> > >&, std::vector<std::pair<unsigned int, unsigned int>, std::allocator<std::pair<unsigned int, unsigned int> > >&, std::vector<vgl_point_2d<float>, std::allocator<vgl_point_2d<float> > >&)]+0x2d): undefined reference to `vgl_tolerance<float>::position' ../../../lib/libvgl.a(vgl_homg_line_3d_2_points+double-.o): In function `vgl_homg_line_3d_2_points<double>::force_point2_infinite() const': vgl_homg_line_3d_2_points+double-.cxx:(.text._ZNK25vgl_homg_line_3d_2_pointsIdE21force_point2_infiniteEv[vgl_homg_line_3d_2_points<double>::force_point2_infinite() const]+0xf): undefined reference to `vgl_tolerance<double>::position' ../../../lib/libvgl.a(vgl_intersection+float-.o): In function `bool vgl_intersection<float>(vgl_line_2d<float> const&, vgl_line_2d<float> const&, vgl_point_2d<float>&)': vgl_intersection+float-.cxx:(.text._Z16vgl_intersectionIfEbRK11vgl_line_2dIT_ES4_R12vgl_point_2dIS1_E[bool vgl_intersection<float>(vgl_line_2d<float> const&, vgl_line_2d<float> const&, vgl_point_2d<float>&)]+0xa4): undefined reference to `vgl_tolerance<float>::position' ../../../lib/libvgl.a(vgl_intersection+float-.o): In function `bool vgl_lineseg_test_point<float>(vgl_point_2d<float> const&, vgl_line_segment_2d<float> const&)': vgl_intersection+float-.cxx:(.text._Z22vgl_lineseg_test_pointIfEbRK12vgl_point_2dIT_ERK19vgl_line_segment_2dIS1_E[bool vgl_lineseg_test_point<float>(vgl_point_2d<float> const&, vgl_line_segment_2d<float> const&)]+0x1b0): undefined reference to `vgl_tolerance<double>::position' ../../../lib/libvgl.a(vgl_intersection+float-.o): In function `bool coplanar<float>(vgl_point_3d<float> const&, vgl_point_3d<float> const&, vgl_point_3d<float> const&, vgl_point_3d<float> const&)': vgl_intersection+float-.cxx:(.text._Z8coplanarIfEbRK12vgl_point_3dIT_ES4_S4_S4_[bool coplanar<float>(vgl_point_3d<float> const&, vgl_point_3d<float> const&, vgl_point_3d<float> const&, vgl_point_3d<float> const&)]+0x6b7): undefined reference to `vgl_tolerance<float>::point_3d_coplanarity' vgl_intersection+float-.cxx:(.text._Z8coplanarIfEbRK12vgl_point_3dIT_ES4_S4_S4_[bool coplanar<float>(vgl_point_3d<float> const&, vgl_point_3d<float> const&, vgl_point_3d<float> const&, vgl_point_3d<float> const&)]+0x6cd): undefined reference to `vgl_tolerance<float>::point_3d_coplanarity' ../../../lib/libvgl.a(vgl_ray_3d+double-.o): In function `vgl_ray_3d<double>::contains(vgl_point_3d<double> const&) const': vgl_ray_3d+double-.cxx:(.text._ZNK10vgl_ray_3dIdE8containsERK12vgl_point_3dIdE[vgl_ray_3d<double>::contains(vgl_point_3d<double> const&) const]+0x52): undefined reference to `vgl_tolerance<double>::position' vgl_ray_3d+double-.cxx:(.text._ZNK10vgl_ray_3dIdE8containsERK12vgl_point_3dIdE[vgl_ray_3d<double>::contains(vgl_point_3d<double> const&) const]+0xa7): undefined reference to `vgl_tolerance<double>::position' ../../../lib/libvgl.a(vgl_homg_line_3d_2_points+float-.o): In function `vgl_homg_line_3d_2_points<float>::force_point2_infinite() const': vgl_homg_line_3d_2_points+float-.cxx:(.text._ZNK25vgl_homg_line_3d_2_pointsIfE21force_point2_infiniteEv[vgl_homg_line_3d_2_points<float>::force_point2_infinite() const]+0xf): undefined reference to `vgl_tolerance<float>::position' ../../../lib/libvgl.a(vgl_vector_3d+double-.o): In function `vgl_vector_3d<double> orthogonal_vectors<double>(vgl_vector_3d<double> const&, double)': vgl_vector_3d+double-.cxx:(.text._Z18orthogonal_vectorsIdE13vgl_vector_3dIT_ERKS2_d[vgl_vector_3d<double> orthogonal_vectors<double>(vgl_vector_3d<double> const&, double)]+0xab): undefined reference to `vgl_tolerance<double>::position' ../../../lib/libvgl.a(vgl_ray_3d+float-.o): In function `vgl_ray_3d<float>::contains(vgl_point_3d<float> const&) const': vgl_ray_3d+float-.cxx:(.text._ZNK10vgl_ray_3dIfE8containsERK12vgl_point_3dIfE[vgl_ray_3d<float>::contains(vgl_point_3d<float> const&) const]+0x90): undefined reference to `vgl_tolerance<float>::position' vgl_ray_3d+float-.cxx:(.text._ZNK10vgl_ray_3dIfE8containsERK12vgl_point_3dIfE[vgl_ray_3d<float>::contains(vgl_point_3d<float> const&) const]+0xff): undefined reference to `vgl_tolerance<float>::position' ../../../lib/libvgl.a(vgl_intersection+double-.o): In function `bool vgl_intersection<double>(vgl_line_2d<double> const&, vgl_line_2d<double> const&, vgl_point_2d<double>&)': vgl_intersection+double-.cxx:(.text._Z16vgl_intersectionIdEbRK11vgl_line_2dIT_ES4_R12vgl_point_2dIS1_E[bool vgl_intersection<double>(vgl_line_2d<double> const&, vgl_line_2d<double> const&, vgl_point_2d<double>&)]+0xa4): undefined reference to `vgl_tolerance<double>::position' ../../../lib/libvgl.a(vgl_ray_3d+int-.o): In function `vgl_ray_3d<int>::contains(vgl_point_3d<int> const&) const': vgl_ray_3d+int-.cxx:(.text._ZNK10vgl_ray_3dIiE8containsERK12vgl_point_3dIiE[vgl_ray_3d<int>::contains(vgl_point_3d<int> const&) const]+0x80): undefined reference to `vgl_tolerance<int>::position' vgl_ray_3d+int-.cxx:(.text._ZNK10vgl_ray_3dIiE8containsERK12vgl_point_3dIiE[vgl_ray_3d<int>::contains(vgl_point_3d<int> const&) const]+0xdc): undefined reference to `vgl_tolerance<int>::position' ../../../lib/libvgl.a(vgl_homg_line_3d_2_points+int-.o): In function `vgl_homg_line_3d_2_points<int>::force_point2_infinite() const': vgl_homg_line_3d_2_points+int-.cxx:(.text._ZNK25vgl_homg_line_3d_2_pointsIiE21force_point2_infiniteEv[vgl_homg_line_3d_2_points<int>::force_point2_infinite() const]+0x10): undefined reference to `vgl_tolerance<int>::position' collect2: ld returned 1 exit status make[2]: *** [core/vgl/tests/vgl_test_all] Error 1 make[2]: Leaving directory `/home/cshome/m/mccane/vxl/bin' make[1]: *** [core/vgl/tests/CMakeFiles/vgl_test_all.dir/all] Error 2 make[1]: Leaving directory `/home/cshome/m/mccane/vxl/bin' make: *** [all] Error 2 The only thing that I could see that was different in the compile command on my mac versus the linux box is the -rdynamic. However, manually removing it had no effect (I could not discover how to remove it via cmake since it didn't seem to be referenced anywhere). I have attached the CMakeCache.txt file if that helps. Any ideas? -- Cheers, Brendan PS. had a quick look at the mail archives but couldn't find anything. Does anyone know how to search a specific archive, because I'm damned if I can figure it out (e.g. searching for "unsigned int" from the vxl-maintainers page returns a few hits from other sourceforge pages). |