<div dir="ltr">When I read the documentation of DEFINE-FOREIGN-LIBRARY at<div><a href="https://common-lisp.net/project/cffi/manual/html_node/define_002dforeign_002dlibrary.html#define_002dforeign_002dlibrary">https://common-lisp.net/project/cffi/manual/html_node/define_002dforeign_002dlibrary.html#define_002dforeign_002dlibrary</a><br></div><div>I don't see any way of defining a library and associating a full path.</div><div>It really seems (and correct me if I'm wrong) that you can only specify paths in the case "<span style="color:rgb(0,0,0);font-family:georgia,serif;font-size:medium">if not found in system-global directories.</span>"  But exactly what that means is not immediately clear.  I assume it means that in all cases dload() will be called first, passing the library name, and if that fails, then cffi will attempt to find it elsewhere.</div><div><br></div><div>What I'd like to do is circumvent dload() from being called because I know it will load the wrong file (wrong version).</div><div><br></div><div>Am I reading the documentation wrong?  Is there really a way to load the dylib from a specified directory and associate it with the lisp symbol for cffi's db?</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Sep 15, 2016 at 11:24 AM, Jim Newton <span dir="ltr"><<a href="mailto:jimka.issy@gmail.com" target="_blank">jimka.issy@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">The program I'm trying to load has several dependencies which I'm still trying to figure out.<div>One problem (I think) is that it loading some of its .dylib libraries from the wrong place.</div><div>I'd like to load them explicitly to help me debug the problem.</div><div>What is the correct way to do this.</div><div><br></div><div>Here's what I've tried (but it is not yet correct).</div><div>I've added the line to my .sbclrc file.</div><div><div><br></div><div>(cffi:load-foreign-library  "/usr/local/Cellar/cairo/1.<wbr>12.16_1/lib/libcairo.dylib")</div><div><br></div><div>This seems indeed to load the dylib, but later my system calls (CFFI::LOAD-FOREIGN-<wbr>LIBRARY-PATH :LIBCAIRO "libcairo.dylib" NIL)</div></div><div>which apparently does not realise :LIBCAIRO is already loaded, so it</div><div>tries to load cairo again but from /usr/local/Cellar/cairo/1.14.<wbr>6_1/lib/libcairo.2.dylib</div><div><br></div><div>Is there a way for me to tell cffi:load-foreign-library that loading 1.12.16_1 loads :LIBCAIRO ?</div><div>I thought about calling cffi:define-foreign-library to associate :LIBCAIRO with the explicit path "/usr/local/Cellar/cairo/1.12.<wbr>16_1/lib/libcairo.dylib", but I don't see how to do that.</div><div><br></div><div>Can someone help?</div><div><br></div><div>Thanks.</div><span class="HOEnZb"><font color="#888888"><div>Jim</div></font></span></div>
</blockquote></div><br></div>