[Geotiff] Problem compiling under MinGW/MSYS

Thom DeCarlo t.r.decarlo at larc.nasa.gov
Mon Jan 30 11:38:37 EST 2006


I got more info from the MinGW/MSYS mailing list. It seems that, in MinGW,
we should not be using the "ld" command to link the libraries unless we are
also going to specify *all* of the required libraries. Instead, use "gcc" or
"g++" to link and it will pick up all the necessary libraries. I tested this
on the geotiff library build and it does work. I'm not sure how to get this
change folded into the geotiff "configure.in" file in the CVS, though.

Thom

>From the MinGW/MSYS mailing list:

On 2006-1-27 2:33 UTC, Thom DeCarlo wrote:
> 
> It is starting to feel like there is something in
> the Makefile that is causing the linker to ignore the standard libraries.

The usual cause of that is using 'ld' directly. Instead, use
  'gcc' to link C, or
  'g++' to link C++
and then the usually-necessary libraries will be linked for you.
You can use 'ld' and specify them yourself, but that's too much work.

> thom at HATTER /s/osg/geotiff/libgeotiff
> $ make
> ld -shared xtiff.o geo_free.o geo_get.o geo_names.o geo_new.o
  ^^

> geo_print.o geo_set.o geo_tiffp.o geo_write.o geo_trans.o
> geo_normalize.o geotiff_proj4.o geo_extra.o cpl_serv.o  cpl_csv.o
> -L/usr/local/lib -lproj -L/usr/local/lib -ltiff   -L/usr/local/lib -lz
> -L/usr/local -ljpeg -o libgeotiff.so.1.2.2
> geo_names.o(.text+0xb088):geo_names.c: undefined reference to `sprintf'

Try 'make LD=gcc'; that might make this makefile work.



--
Thom DeCarlo
----------------------------------------------------
    Outside of a dog, a book is a man's best friend.
    Inside of a dog, it's too dark to read.    -Groucho Marx

> -----Original Message-----
> From: Thom DeCarlo
> Sent: Wednesday, January 25, 2006 10:59 AM
> To: geotiff at lists.maptools.org
> Subject: RE: [Geotiff] Problem compiling under MinGW/MSYS
> 
> I have more info on this problem. The word I got from the MinGW/MSYS list
> is
> that -lm is not required in MinGW builds. The math functions are picked up
> from the Microsoft libraries. The best way to account for this seems to be
> changing the line in configure.in that says:
> 
> AC_CHECK_LIB(m,exp,,,)
> 
> to be:
> 
> AC_SEARCH_LIBS([sqrt],[m])
> 
> By doing this and running autoconf (after updating autoconf to version
> 2.59)
> I was able to create a set of Makefiles that did not include any reference
> to "-lm".
> 
> However, that still didn't fix the linker problems. It seems that there is
> something in the makefiles that is forcing the linker to ignore the
> "normal"
> libraries. Now I'm getting piles of "external reference not found" errors.
> The things that are not being found are things like sprintf, atoi, atof,
> and
> (most annoyingly) all the math functions, though these are showing up as
> referenced from the proj library.
> 
> Now, I know the proj library (4.4.9, pulled from CVS last night) compiled
> and installed correctly, and the proj utility programs work. So there is
> definitely something funky happening within the geotiff makefile.
> 
> Does anyone have *any* clue what is going on here?
> 
> Thanks,
> Thom
> 
> --
> Thom DeCarlo
> ---------------------------------
> Where are we going and why am I in this handbasket?
> 
> > -----Original Message-----
> > From: Thom DeCarlo
> > Sent: Friday, January 20, 2006 11:32 AM
> > To: geotiff at lists.maptools.org
> > Subject: [Geotiff] Problem compiling under MinGW/MSYS
> >
> > I updated my geotiff source from CVS last night and tried to do a
> > ./configure and make. The make failed, complaining that it could not
> find
> > "-lm".
> >
> > The configure ran successfully with these options:
> >     ./configure --with-jpeg=/usr/local --with-proj=/usr/local
> >       --with-libtiff=/usr/local --with-zip=/usr/local
> > and the config.log says that exp was successfully found in -lm.
> >
> > The only libm.a that I found in my MinGW/MSYS environment is in
> /mingw/lib
> > and is only 485 bytes in size. When I added "-L/mingw/lib" to the
> Makefile
> > LIBS variable the make spewed many errors about not finding a variety of
> > math functions needed by the proj library.
> >
> > The proj library also needed the math library and compiled successfully.
> >
> > Can anyone tell me why libgeotiff fails to link with this library? Is
> > there
> > something wrong with my MinGW installation?
> >
> > TIA,
> > Thom
> > --
> > Thom DeCarlo
> > ---------------------------------
> >   /~\ The ASCII
> >   \ / Ribbon Campaign
> >    X  Against HTML
> >   / \ Email!
> >
> >




More information about the Geotiff mailing list