Hi,

Hans Aberg <haber...@telia.com> writes:

> On 2 Mar 2011, at 21:44, Ludovic Courtès wrote:
>
>>> scheme@(guile-user)> (define libm (dynamic-link "/usr/lib/libm.dylib"))
>>> ERROR: In procedure dynamic-link: file: "/usr/lib/libm.dylib",
>>> message: "file not found"
>> 
>> You should omit the extension, which will be automatically inferred by
>> Guile (actually ltdl) depending on the system:
>> 
>>  (dynamic-link "/usr/lib/libm")
>> 
>> or:
>> 
>>  (dynamic-link "libm")
>
> None of those work - I checked and rechecked that. Making a soft link ending 
> on ".so", and it works fine. I have seen this before in the Bessel function 
> example.

Right.  There’s this insightful test started by you last year:

  http://lists.gnu.org/archive/html/bug-libtool/2010-02/msg00000.html

The crux is that on older MacOS X versions ‘.dylib’ are shared libraries
(not dlopenable), whereas ‘.so’ are “bundles” (dlopenable).  That’s why
lt_dlopenext (which is what ‘dynamic-link’ uses) doesn’t try to open
‘.dylib’ files.

May I recommend switching to GNU/Linux?  :-)

Thanks,
Ludo’.

Reply via email to