[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[UDUNITS #OLT-675021]: UDUNITS on Linux 2.6



Gabriella,

> Hello, I have been trying to compile UDUNITS on my Linux box
> (SusE distro) and I'm running into problems: looks like either my
> library path is not right or I am actually missing some libraries.
> Thanx
> gaby
> 
> make[1]: Entering directory `/home/turekg/tmp/udunits-1.12.4/src/udunits'
> gcc -o udunits -g -O2 udunits.o
> -L/home/turekg/tmp/udunits-1.12.4/src/lib -ludunits
> -L/home/turekg/tmp/udunits-1.12.4/src/port/misc -ludport
> /home/turekg/tmp/udunits-1.12.4/src/lib/libudunits.a(utlib.o): In
> function `dectime':
> /home/turekg/tmp/udunits-1.12.4/src/lib/utlib.c:432: undefined reference
> to `floor'
...

It appears that your C runtime library doesn't contain the standard math
functions.  Try to find what library the math functions are in.  The
nm(1) utility can be very helpful in this.  For example:

    ~/udunits/lib: nm -gp /usr/lib/lib*.a | grep floor
    /usr/lib/libm.a[floor.o]:
    0000000000 T __floor
    0000000000 T floor
    /usr/lib/libm.a[floorf.o]:
    0000000224 T __floorf
    0000000224 T floorf
    /usr/lib/libm.a[floorl.o]:
    0000000576 T __floorl
    0000000576 T floorl

Once you know the library that contains the math functions, add an ld(1)
reference to it to the environment variable LD_MATH and re-execute the
configure(1) script.  For example:

    $ make distclean
    ...
    $ LD_MATH='-L/usr/lib -lm' ./configure >configure.log 2>&1

Then, continue with the build process with the "make" command.

Regards,
Steve Emmerson

Ticket Details
===================
Ticket ID: OLT-675021
Department: Support UDUNITS
Priority: Normal
Status: Closed