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

Re: 20030904:Compilation of netCDF 64-bit



>To: address@hidden 
>From: =?iso-8859-1?B?QWx2YXJvIFNhaW5lcm8gTWFydO1u?=  
>Subject: Compilation of netCDF 
>Organization: UCAR/Unidata 
>Keywords: 200309041121.h84BLrLd016590 

Hi,

> I got to solve the problem (it was nothing to do but with file permissions).
> 
> Anyway, I still have a conflict. I can compille succesfully the
> library libnetcdf.a, but the problem appears during the linkning
> proccess, I guess.
> 
> I get the message ld: Missing library symbol table in
> ../libsrc/libnetcdf.a when 'making all' to ncdump.  the command
> "which ld", returns "/usr/bin/ld", so I guess I´m using the right
> ld.

Make all should not even be using ld, it just uses the compiler to do
the linking.  For example, the output of "make all" on our HP-UX
system for ncdump is

  Making `all' in directory /home/russ/netcdf/build/tweety-64o/src/ncdump

        c89 -c +DD64 -I../libsrc  -D_HPUX_SOURCE -D_FILE_OFFSET_BITS=64 ncdump.c
        c89 -c +DD64 -I../libsrc  -D_HPUX_SOURCE -D_FILE_OFFSET_BITS=64 
vardata.c
        c89 -c +DD64 -I../libsrc  -D_HPUX_SOURCE -D_FILE_OFFSET_BITS=64 
dumplib.c
        c89 -o ncdump +DD64  ncdump.o vardata.o dumplib.o ../libsrc/libnetcdf.a 
 

so "c89" does what's necessary to link the object files and library.
It may call /usr/bin/ld to do this, but you should not see ld invoked
in the output from "make all".

> In fact, I recently get this message at a regular basis as I´m
> trying to compile several tools (netcdf is supposed to be something
> needed to compile other target programs).
> 
> Any ideas about what I can look at to get rid of this bothering stuff?

The HP documentation, in relation to this error message, says:

 CAUSE                 The named relocatable library file has no symbol
                       table.  This usually indicates that the relocatable
                       library file has been corrupted, or that a
                       non-library file has been created with an NMRL
                       filecode.

 ACTION                Verify that you have specified a relocatable
                       library file, that it is the correct one and that
                       its name is spelled correctly.  It the file and
                       filecode are correct, replace or rebuild the file.

which isn't of much help to me.  Was there any message output from the
"ar" run that created the library archive in libnetcdf.a?  Make sure
you are using HP's "ar" instead of something like GNU ar.  You also
might try running "ranlib" on libnetcdf.a, although I don't think this
should be necessary on HP-UX systems.  But the "make all" should have
run "ranlib" on the library after "ar", so check also if there is any
output from that command that indicates a problem, and make sure the
"ranlib" used is the HP version of "ranlib".

Just to be clear, here's the output I see from "make all" in the
directory "libsrc":

        ar cru libnetcdf.a attr.o  dim.o  error.o  libvers.o  nc.o  ncio.o  
ncx.o  putget.o  string.o  v1hpg.o  v2i.o  var.o
        ranlib libnetcdf.a

with no error messages.  

--Russ

_____________________________________________________________________

Russ Rew                                         UCAR Unidata Program
address@hidden                      http://my.unidata.ucar.edu