Bug report: Mac DMG version - io_lib programs

John Nash
2011-12-16
2013-04-18
  • John Nash
    John Nash
    2011-12-16

    When invoked, they cannot find the dynamic libraries:

    Endeavour:~ johnnash$ srf_dump_all
    dyld: Library not loaded: /nfs/sam_scratch/jkb/staden.mac/lib/libstaden-read.1.dylib
      Referenced from: /Applications/Staden/bin/srf_dump_all
      Reason: image not found
    Trace/BPT trap: 5

    I hope this is helpful. I'm not trying to be a pain - I have no life and I hate tv, and decided to be constructive this evening because I was so excited at the work you folk did to make a Mac DMG :)

    J

     
  • John Nash
    John Nash
    2011-12-16

    And the fix:

    export DYLD_LIBRARY_PATH=/Applications/Staden/lib/staden:$DYLD_LIBRARY_PATH
    
     
  • James Bonfield
    James Bonfield
    2011-12-16

    The command line binaries are expected to be ran in a shell that has set STADENROOT and sourced $STADENROOT/share/staden/staden.profile. This sets up all the other environments, like DYLD_LIBRARY_PATH.  Sorry if that's not clear - I probably need to check the README file again.

    Ideally though it would be good if programs naturally just knew where their libraries were. I know you can do this with -rpath when building, but as far as I'm aware that is a hard-coded pathname and then moving the binaries elsewhere will cause them to break.  I wonder if it's possible to use a relative rpath when linking. Something to investigate perhaps.