Menu

#152 Makefile doesn't find libgdbm.a and libgdbm_compat.a on Debian Jessie

ecolab
closed
nobody
None
1
2015-10-19
2015-07-28
No

In Debian Jessie the files libgdbm.a and libgdbm_compat.a live in directories with names like /usr/lib/i386-linux-gnu/ /usr/lib/x86_64-linux-gnu/ - i.e. in a subdirectory that indicates the architecture. This is so that in multiacrch systems like mine you can have more than one version of them. As a consequence the Makefile, as distributed, can't find them. It's easy to edit it, one off, as I have done for my system but I'm not sure what the best solution in general is (especially as there are other architectures that Debian runs on)

Discussion

  • High Performance Coder

    If you an determine at runtime what the relevant architecture
    directory is, then add the appropriate directory as a -L parameter to
    LIB.

    Alternatively, you could try adding both directories to the LIB
    parameter - ld is generally smart enough to link to the correct
    architecture.

    Finally, it is better installing Berkley DB (libdb-dev), as this is a
    superior database backend to gdbm. We could, perhaps disable the gdbm
    code altogether, unless specifically enabled by the user for
    backwards compatibility.

    --


    Prof Russell Standish Phone 0425 253119 (mobile)
    Principal, High Performance Coders
    Visiting Professor of Mathematics hpcoder@hpcoders.com.au
    University of New South Wales http://www.hpcoders.com.au


     
  • Bernard Hurley

    Bernard Hurley - 2015-07-28

    None of the recent Debian releases contain db4. In fact you can't even find it on their web page. ecolib links against db5.3 so I suppose that will be OK.

     
  • High Performance Coder

    • status: open --> closed
     
  • High Performance Coder

    Fixed by expanding the list of directories Make searches.

     

Anonymous
Anonymous

Add attachments
Cancel