How to load a dylib from a particular place

Jim Newton jimka.issy at gmail.com
Thu Sep 15 15:05:50 UTC 2016


I sent this email earlier, but then realized I was not subscribed.  So I
have know way of knowing whether it got spam-filtered out.
So here it is again.  Sorry if this is a repeat question.


The program I'm trying to load has several dependencies which I'm still
trying to figure out.
One problem (I think) is that it loading some of its .dylib libraries from
the wrong place.
I'd like to load them explicitly to help me debug the problem.
What is the correct way to do this.

Here's what I've tried (but it is not yet correct).
I've added the line to my .sbclrc file.

(cffi:load-foreign-library  "/usr/local/Cellar/cairo/1.
12.16_1/lib/libcairo.dylib")

This seems indeed to load the dylib, but later my system
calls (CFFI::LOAD-FOREIGN-LIBRARY-PATH :LIBCAIRO "libcairo.dylib" NIL)
which apparently does not realise :LIBCAIRO is already loaded, so it
tries to load cairo again but from /usr/local/Cellar/cairo/1.14.
6_1/lib/libcairo.2.dylib

Is there a way for me to tell cffi:load-foreign-library that loading
1.12.16_1 loads :LIBCAIRO ?
I thought about calling cffi:define-foreign-library to associate :LIBCAIRO
with the explicit path "/usr/local/Cellar/cairo/1.12.16_1/lib/libcairo.dylib",
but I don't see how to do that.

Can someone help?

Thanks.
Jim
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/cffi-devel/attachments/20160915/0e333d33/attachment.html>


More information about the cffi-devel mailing list