Unidata - To provide the data services, tools, and cyberinfrastructure leadership that advance Earth system science, enhance educational opportunities, and broaden participation. Unidata
         
  advanced  
 

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

library order



Sorry to flood you with bug reports… I dug this and the other two up a few days ago and am just getting around to writing about them..

 

It looks like libdap was split into  core, server and client components.    The order they are listed in the Makefile and libdap-config matter if you are linking statically at least with gcc on linux.   If you put them in the wrong order, you get undefined symbols. (works OK linking dynamically)  

 

In  libdap/Makefile.am it should be:    lib_LTLIBRARIES = libdapclient.la libdapserver.la libdap.la

  (move libdap.la to the end of the list)

 

In libdap/dap-config.in:  the targets –server-libs and –client-libs  should have –ldap moved after -ldapclient and –ldapserver respectively.

 

 

Basically, libraries with references to objects need to come before the libraries that define the objects so that an undefined reference is created, which is then matched against the definition.    (gcc ld has a way of searching the libraries multiple times to resolve all references, but it is not recommended)

 

-----
David Wojtowicz, Sr. Research Programmer, Sysadmin
Dept of Atmospheric Sciences / Computer Services
University of Illinois at Urbana-Champaign
davidw@xxxxxxxx  (217) 333-8390

 


 
 
  Contact Us     Site Map     Search     Terms and Conditions     Privacy Policy     Participation Policy
 
National Science Foundation (NSF) UCAR Office of Programs University Corporation for Atmospheric Research (UCAR)   Unidata is a member of the UCAR Office of Programs, is managed by the University Corporation for Atmospheric Research, and is sponsored by the National Science Foundation.
P.O. Box 3000     Boulder, CO 80307-3000 USA     Tel: 303-497-8643     Fax: 303-497-8690