[Gmsh] solaris compilation problem

Christophe Geuzaine cag32 at case.edu
Mon Apr 24 02:14:08 CEST 2006


michael wrote:
> Hello,
> 
> I try to compile the 1.64.1 version on a solaris 8 sparc platfrom.
> 
> When i use the gmake commande, it is return this error :
> 
> gmake[1]: Leaving directory `/OPT/tmp/tmp/gmsh-1.61.3/contrib/MathEval'
> g++ -g -O2 -o bin/gmsh -Llib -lGmshFltk -lGmshParser -lGmshGraphics 
> -lGmshMesh -lGmshGeo -lGmshCommon -lGmshDataStr -lGmshPlugin 
> -lGmshNumeric -lGmshParallel -L/usr/local/lib -L/usr/openwin/lib 
> -R/usr/openwin/lib -lfltk_images -lfltk_png -lz -lfltk_jpeg -lfltk_gl 
> -lGLU -lGL -lfltk -ldl -lm -lXext -lX11 -lsocket -lnsl -lz -lGmshANN 
> -lGmshMetis -lGmshNetgen -lGmshMathEval -lgsl -lgslcblas -lm -lsocket 
> -lnsl -ldl
> Undefined                       first referenced
>  symbol                             in file
> std::_List_node_base::swap(std::_List_node_base&, 
> std::_List_node_base&)lib/libGmshMesh.a(BDS.o)
> std::_Rb_tree_increment(std::_Rb_tree_node_base*)lib/libGmshFltk.a(GUI.o)
> std::_List_node_base::hook(std::_List_node_base*)lib/libGmshMesh.a(BDS.o)
> std::basic_string<char, std::char_traits<char>, std::allocator<char> 
>  >::_Rep::_S_empty_rep_storagelib/libGmshGraphics.a(Geom.o)
> std::_List_node_base::unhook()      lib/libGmshMesh.a(BDS.o)
> __gnu_cxx::__exchange_and_add(int volatile*, 
> int)lib/libGmshGraphics.a(Geom.o)
> std::basic_streambuf<char, std::char_traits<char> >::seekoff(long long, 
> std::_Ios_Seekdir, std::_Ios_Openmode)lib/libGmshNetgen.a(nglib_addon.o)
> std::_Rb_tree_increment(std::_Rb_tree_node_base 
> const*)lib/libGmshMesh.a(BDS.o)
> std::_Rb_tree_rebalance_for_erase(std::_Rb_tree_node_base*, 
> std::_Rb_tree_node_base&)lib/libGmshMesh.a(BDS.o)
> std::_Rb_tree_insert_and_rebalance(bool, std::_Rb_tree_node_base*, 
> std::_Rb_tree_node_base*, 
> std::_Rb_tree_node_base&)lib/libGmshParser.a(FunctionManager.o)
> std::_List_node_base::transfer(std::_List_node_base*, 
> std::_List_node_base*)lib/libGmshMesh.a(BDS.o)
> std::_Rb_tree_decrement(std::_Rb_tree_node_base*)lib/libGmshParser.a(FunctionManager.o)
> ld: fatal: Symbol referencing errors. No output written to bin/gmsh
> collect2: ld returned 1 exit status
> 
> 
> It seem to have a problem with the link part of the Makefile.
> 
> Anyone have a suggestion ?
> 

Looks like the symbols from the standard template library cannot be 
resolved. Maybe you need to add libstdc++ explicitly to the link line?

What happens if you try to compile a simple program that uses some 
classes from the std lib? Try e.g.

#include <vector>
#include <stdio.h>
int main()
{
    std::vector<int> v(2);
    v[0] = 1;
    v[1] = v[0] * 2;
    printf("%d %d\n", v[0], v[1]);
    return 0;
}



> Thanks,
> 
> 


-- 
Christophe Geuzaine
Assistant Professor, Case Western Reserve University, Mathematics
http://www.case.edu/artsci/math/geuzaine