<div dir="ltr"><div><div>If someone could give me some clues about how to debug this it would be great.</div></div><div><br></div>I'm trying to figure out why "it" fails to load a particular dylib under macOS.<div>"it" meaning that I'm not sure who is actually failing, but I suspect it is actually a failure detected and reported by dlopen(3) itself, rather than something wrong in cffi.</div><div><br></div><div>The problem seems to be that loading <span style="font-family:monospace,monospace">libgdk-x11-2.0.0.dylib </span>triggers a complaint about a library I have loaded from a different place, but the error message indicates a location I have not loaded my LD_LIBRARY_PATH.</div><div><br></div><div>Could it possibly be that <span style="font-family:monospace,monospace">libgdk-x11-2.0.0.dylib </span>has a hard coded path in it pointing to <span style="font-family:monospace,monospace">/usr/local/lib </span>?</div><div><br></div><div>If someone could give me some clues about how to debug this it would be great.</div><div><br></div><div>I've set up my LD_LIBRARY_PATH so that it seems to be loading the correct libcairo.2.dylib from <font face="monospace, monospace">/usr/local/Cellar/cairo/1.12.16_1/lib/libcairo.2.dylib</font>.  The reason I think this is because both vmmap (unix command line) and <font face="monospace, monospace">cffi::list-foreign-libraries</font> (lisp) give compatible results.</div><div><br></div><div><font face="monospace, monospace">sh> vmmap -w 16787 | grep dylib | sed -e 's/^.*SM=...  //' | grep cairo</font></div><div><font face="monospace, monospace">/usr/local/Cellar/cairo/1.14.6_1/lib/libcairo.2.dylib</font></div><div><font face="monospace, monospace">sh></font></div><div><br></div><div>and</div><div><div><font face="monospace, monospace">CL-USER> (cffi::list-foreign-libraries)</font></div><div><font face="monospace, monospace">(...</font></div><div><font face="monospace, monospace"> #<CFFI:FOREIGN-LIBRARY</font></div><div><font face="monospace, monospace">   :LIBCAIRO #P"/usr/local/Cellar/cairo/1.12.16_1/lib/libcairo.dylib" (truename=#P"/usr/local/Cellar/cairo/1.12.16_1/lib/libcairo.2.dylib")>)</font></div><div><font face="monospace, monospace">CL-USER> </font></div></div><div><br></div><div>However, when I attempt to load <span style="font-family:monospace,monospace">libgdk-x11-2.0.0.dylib </span>it complains that it cannot find a particular symbol in <span style="font-family:monospace,monospace">/usr/local/lib/libcairo.dylib</span>.  Why is it complaining about <span style="font-family:monospace,monospace">/usr/local/lib/libcairo.dylib</span>?</div><div><br></div><div><div><font face="monospace, monospace">Unable to load any of the alternatives:</font></div><div><font face="monospace, monospace">   ("libgdk-x11-2.0.0.dylib" "libgdk-x11-2.0.dylib")</font></div><div><font face="monospace, monospace">   </font></div><div><font face="monospace, monospace">Attempting to load GDK::GDK from lib "libgdk-x11-2.0.dylib"</font></div><div><font face="monospace, monospace">(%LOAD-FOREIGN-LIBRARY GDK</font></div><div><font face="monospace, monospace">                       /usr/local/Cellar/gtk+/2.24.24/lib/libgdk-x11-2.0.0.dylib)</font></div><div><font face="monospace, monospace">Unable to load foreign library (GDK::GDK).</font></div><div><font face="monospace, monospace">  Error opening shared object "/usr/local/Cellar/gtk+/2.24.24/lib/libgdk-x11-2.0.0.dylib":</font></div><div><font face="monospace, monospace">  dlopen(/usr/local/Cellar/gtk+/2.24.24/lib/libgdk-x11-2.0.0.dylib, 10): Symbol not found: _cairo_xlib_surface_create</font></div><div><font face="monospace, monospace">  Referenced from: /usr/local/Cellar/gtk+/2.24.24/lib/libgdk-x11-2.0.0.dylib</font></div><div><font face="monospace, monospace">  Expected in: /usr/local/lib/libcairo.dylib</font></div><div><font face="monospace, monospace"> in /usr/local/Cellar/gtk+/2.24.24/lib/libgdk-x11-2.0.0.dylib.</font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">Attempting to load GDK::GDK from lib "libgdk-x11-2.0.0.dylib"</font></div><div><font face="monospace, monospace">(%LOAD-FOREIGN-LIBRARY GDK</font></div><div><font face="monospace, monospace">                       /usr/local/Cellar/gtk+/2.24.24/lib/libgdk-x11-2.0.0.dylib)</font></div><div><font face="monospace, monospace">Unable to load foreign library (GDK::GDK).</font></div><div><font face="monospace, monospace">  Error opening shared object "/usr/local/Cellar/gtk+/2.24.24/lib/libgdk-x11-2.0.0.dylib":</font></div><div><font face="monospace, monospace">  dlopen(/usr/local/Cellar/gtk+/2.24.24/lib/libgdk-x11-2.0.0.dylib, 10): Symbol not found: _cairo_xlib_surface_create</font></div><div><font face="monospace, monospace">  Referenced from: /usr/local/Cellar/gtk+/2.24.24/lib/libgdk-x11-2.0.0.dylib</font></div><div><font face="monospace, monospace">  Expected in: /usr/local/lib/libcairo.dylib</font></div><div><font face="monospace, monospace"> in /usr/local/Cellar/gtk+/2.24.24/lib/libgdk-x11-2.0.0.dylib.</font></div><div><font face="monospace, monospace">   [Condition of type CFFI:LOAD-FOREIGN-LIBRARY-ERROR]</font></div></div></div>