[Gmsh] Compile Error; Platform: Ubuntu Dapper (AMD64)

David Colignon David.Colignon at ulg.ac.be
Wed Oct 18 09:53:26 CEST 2006


William Hunter wrote:
> Dave;
> 
> I've attached the output from doing "./configure
> --with-fltk-prefix=/usr/include/FL/". I noticed that my fltk is
> installed in a non-standard location, hence the use of the prefix
> option above. I tried compiling fltk from source last night, but I get
> a heck of a lot of errors. Fltk's configure script doesn't complain,
> but gcc is not happy. The debian package works fine though and it's
> current (FLTK v1.1), so that's what I'm using. As an aside, GSL
> compiled without any problems whatsoever.

Hi William,

the line 

checking for fltk-config... /usr/bin/fltk-config

in the output of ./configure shows that it has found FLTK.

On my box, I installed FLTK with synaptic (libfltk1.1 and libfltk1.1-dev) and they are installed in the same location as you.

> 
> Below is what I get if I cd into Fltk and do "make". It complains
> about not finding 'gl.h', but I checked and it's there (?) -- I'm
> confused. Here's the output:
> 
> william at tambotie:~/tmp/gmsh-1.65.0$ cd Fltk/
> william at tambotie:~/tmp/gmsh-1.65.0/Fltk$ make
> g++ -g -O2 -DHAVE_GSL -DHAVE_MATH_EVAL -DHAVE_NETGEN -DHAVE_METIS
> -DHAVE_ANN_ -DHAVE_LIBZ -DHAVE_LIBPNG -DHAVE_LIBJPEG -DHAVE_FLTK
> -I/usr/include/FL/ -I/usr/include/freetype2 -I../Common -I../DataStr
> -I../Graphics -I../Geo -I../Mesh -I../Numeric -I../Parser -I../Fltk
> -I../Plugin -I../utils/solvers -I../contrib/ANN/include -c Main.cpp
> In file included from GUI.h:28,
>                 from Main.cpp:27:

> /usr/include/FL/gl.h:53:23: error: GL/gl.h: No such file or directory



I now remember that I have had the same kind of problem : /usr/include/FL/gl.h try to include /usr/include/GL/gl.h but GL/gl.h is not installed in the Dapper distribution. 
The solution is to find gl.h (and also glext.h) on another linux distribution and to put them in /usr/include/GL .
It worked for me...

Cheers,

Dave



> In file included from Colorbar_Window.h:23,
>                 from GUI.h:59,
>                 from Main.cpp:27:
> ../Common/GmshUI.h:39:24: error: GL/glu.h: No such file or directory
> /usr/include/FL/gl.h: In function ‘void gl_rectf(int, int, int, int)’:
> /usr/include/FL/gl.h:63: error: ‘glRecti’ was not declared in this 
> scope
> ../Mesh/Matrix.h: In member function ‘double Vector3::length()’:
> ../Mesh/Matrix.h:86: error: ‘sqrt’ was not declared in this scope
> make: *** [Main.o] Error 1
> 
> Can you figure out what's going on? (The '’' symbols is an artifact
> from pasting from Linux to Windows, I think. They're not in the
> original Linux output.)
> 
> Regards,
> William
> 
> 
> On 17/10/06, David Colignon <David.Colignon at ulg.ac.be> wrote:
>> Hi,
>>
>> you must have other errors in the Fltk directory. Can you cd in the 
>> Gmsh/Fltk directory and again perform a "make" ?
>>
>> Cheers,
>>
>> Dave
>>
>>
>> William Hunter wrote:
>> > My apologies, I didn't include the ML :-).
>> >
>> > ---------- Forwarded message ----------
>> > From: William Hunter <willemjagter at gmail.com>
>> > Date: 17-Oct-2006 08:35
>> > Subject: Re: [Gmsh] Compile Error; Platform: Ubuntu Dapper (AMD64)
>> > To: Colignon David <David.Colignon at ulg.ac.be>
>> >
>> >
>> > Dave;
>> >
>> > Here's the last (and as far as I can see only) error message:
>> >
>> > make[1]: Leaving directory 
>> `/home/william/tmp/gmsh-1.65.0/contrib/MathEval'
>> > g++ -g -O2 -o bin/gmsh -Llib -lGmshFltk -lGmshParser -lGmshGraphics
>> > -lGmshMesh -lGmshGeo -lGmshPlugin -lGmshCommon -lGmshDataStr
>> > -lGmshNumeric -lGmshParallel -lfltk_images -lfltk_gl -lfltk -ljpeg
>> > -lpng -lz -lGmshANN -lGmshMetis -lGmshNetgen -lGmshMathEval -lgsl
>> > -lgslcblas -lm
>> > /usr/bin/ld: cannot find -lGmshFltk
>> > collect2: ld returned 1 exit status
>> > make: *** [link] Error 1
>> >
>> > uname -a returns the following:
>> > Linux tambotie 2.6.15-26-amd64-generic #1 SMP PREEMPT Thu Aug 3
>> > 02:52:35 UTC 2006 x86_64 GNU/Linux
>> >
>> > What I did:
>> > Unpacked the gmsh archive in 'tmp' in my home directory, then did
>> > './configure' which didn't complain about anything (except saying NO
>> > to optional mesh software, which I don't need) and then I typed
>> > 'make'.
>> >
>> > I can only guess that I have to specify a specific directory for
>> > something in the variables file? I tried adding the -fPIC option to
>> > the flags in variables, but this made no difference. The only
>> > non-standard location on my system is the location of BLAS -- I use
>> > ATLAS, and that's located in /usr/local/atlas, but is this relevant at
>> > all?
>> >
>> > Thanks for your help,
>> > William
>> >
>> >
>> >
>> > On 16/10/06, Colignon David <David.Colignon at ulg.ac.be> wrote:
>> >> Hi,
>> >>
>> >> yes, I compile the latest gmsh version ( gmsh-nightly-source.tgz 
>> )on the
>> >> same kind of platform ( uname -a = Linux elap91 2.6.15-26-amd64-k8 
>> #1 SMP
>> >> PREEMPT Thu Aug 3 03:11:38 UTC 2006 x86_64 GNU/Linux ) without any
>> >> problem...
>> >> Can you send the first error message you get ?
>> >>
>> >> Dave
>> >>
>> >>
>> >>
>> >>> List;
>> >>>
>> >>> Before I dump a string of error messages here, has anyone 
>> successfully
>> >>> compiled the latest Gmsh on the above mentioned platform?
>> >>>
>> >>> I have a .deb (v 1.65), and that works fine, but I want to compile 
>> the
>> >>> latest version...
>> >>>
>> >>> All the requirements (GSL and FLTK) are met on my machine (here I did
>> >>> use the .debs -- might that be the problem?), but I still can't
>> >>> compile from the gmsh source.
>> >>>
>> >>> I'm sure it's something trivial, just don't know what! Any ideas/help
>> >>> please?
>> >>> --
>> >>> wh
>> >>> _______________________________________________
>> >>> gmsh mailing list
>> >>> gmsh at geuz.org
>> >>> http://www.geuz.org/mailman/listinfo/gmsh
>> >>>
>> >>
>> >>
>> > _______________________________________________
>> > gmsh mailing list
>> > gmsh at geuz.org
>> > http://www.geuz.org/mailman/listinfo/gmsh
>>
> 
> ------------------------------------------------------------------------
> 
> william at tambotie:~/tmp/gmsh-1.65.0$ ./configure --with-fltk-prefix=/usr/include/FL/
> checking for gcc... gcc
> checking for C compiler default output file name... a.out
> checking whether the C compiler works... yes
> checking whether we are cross compiling... no
> checking for suffix of executables...
> checking for suffix of object files... o
> checking whether we are using the GNU C compiler... yes
> checking whether gcc accepts -g... yes
> checking for gcc option to accept ANSI C... none needed
> checking for g++... g++
> checking whether we are using the GNU C++ compiler... yes
> checking whether g++ accepts -g... yes
> checking how to run the C preprocessor... gcc -E
> checking for ranlib... ranlib
> checking for ar... /usr/bin/ar
> checking for fltk-config... /usr/bin/fltk-config
> checking for main in -ljpeg... yes
> checking for main in -lz... yes
> checking for main in -lpng... yes
> checking for main in -lm... yes
> checking for vsnprintf... yes
> checking for snprintf... yes
> checking for ./contrib/Triangle/triangle.c... no
> ********************************************************************
> If you want to use Jonathan Shewchuk's Triangle as an alternative
> isotropic 2D mesh generator, please download Triangle from the
> author's web site at http://www.cs.cmu.edu/~quake/triangle.html,
> unpack the archive and copy the two files 'triangle.c' and
> 'triangle.h' in the ./contrib/Triangle subdirectory. Then run
> ./configure again.
> Please note that by doing so, you agree with Triangle's licensing
> requirements stated in ./contrib/Triangle/README. (Most notably, you
> may then only redistribute Gmsh if no compensation is received.)
> ********************************************************************
> checking for ./contrib/ANN/include/ANN/ANN.h... yes
> ********************************************************************
> You are building a version of Gmsh that contains ANN, the
> Approximate Nearest Neighbor library.
> Please note that by doing so, you agree with ANN's licensing
> requirements stated in ./contrib/ANN/Copyright.txt.
> To disable ANN, run configure again with the --disable-ann
> option.
> ********************************************************************
> checking for ./contrib/Metis/metis.h... yes
> ********************************************************************
> You are building a version of Gmsh that contains METIS, the
> Serial Graph Partitioner.
> Please note that by doing so, you agree with METIS's licensing
> requirements stated in ./contrib/Metis/README.
> To disable METIS, run configure again with the --disable-metis
> option.
> ********************************************************************
> checking for ./contrib/Netgen/libsrc/meshing/meshclass.cpp... yes
> ********************************************************************
> You are building a version of Gmsh that contains Joachim Schoberl's
> Netgen as an alternative 3D mesh generator. Netgen is distributed
> under the GNU LGPL: see ./contrib/Netgen/COPYING.LIB for more info.
> To disable Netgen, run configure again with the --disable-netgen
> option.
> ********************************************************************
> checking for ./contrib/Tetgen/tetgen.h... no
> ********************************************************************
> If you want to use Hang Si's Tetgen as an alternative
> 3D mesh generator, please download Tetgen from the project's
> web site at http://www.tetgen.berlios.de, unpack the archive
> and move the files predicates.cxx, tetgen.cxx and tetgen.h in
> the ./contrib/Tetgen subdirectory. Then run ./configure again.
> Please note that by doing so, you agree with Tetgen's licensing
> requirements stated in ./contrib/Tetgen/LICENSE. (Most notably, you
> may then only redistribute Gmsh if no compensation is received.)
> ********************************************************************
> checking for ./contrib/MathEval/matheval.cpp... yes
> checking for main in -lgslcblas... yes
> checking for main in -lgsl... yes
> configure: creating ./config.status
> config.status: creating variables
> ********************************************************************
> Gmsh is configured for
> - OS           : Linux
> - C compiler   : gcc
> - C++ compiler : g++
> - Linker       : g++
> - Optimization : -g -O2
> - Options      : -DHAVE_GSL -DHAVE_MATH_EVAL -DHAVE_NETGEN -DHAVE_METIS -DHAVE_ANN_ -DHAVE_LIBZ -DHAVE_LIBPNG -DHAVE_LIBJPEG -DHAVE_FLTK  -I/usr/include/FL/ -I/usr/include/freetype2
> ********************************************************************
> To fine-tune the configuration, edit the 'variables' file
> ********************************************************************