Next: , Previous: *foreign-library-directories*, Up: Libraries


load-foreign-library

Syntax

— Function: load-foreign-library library ⇒ handler

Arguments and Values

library
A library designator.
handler
An instance of foreign-library.

Description

Load the library indicated by library. A library designator is defined as follows:

  1. If a symbol, is considered a name previously defined with define-foreign-library.
  2. If a string or pathname, passed as a namestring directly to the implementation's foreign library loader. If that fails, search the directories in *foreign-library-directories* with cl:probe-file; if found, the absolute path is passed to the implementation's loader.
  3. If a list, the meaning depends on (first library):
    :framework
    The second list element is taken to be a Darwin framework name, which is then searched in *darwin-framework-directories*, and loaded when found.
    :or
    Each remaining list element, itself a library designator, is loaded in order, until one succeeds.
    :default
    The name is transformed according to the platform's naming convention to shared libraries, and the resultant string is loaded as a library designator. For example, on unix, the name is suffixed with .so.

If the load fails, signal a load-foreign-library-error.

Please note: For system libraries, you should not need to specify the directory containing the library. Each operating system has its own idea of a default search path, and you should rely on it when it is reasonable.

Implementation-specific Notes

On ECL platforms where its dynamic FFI is not supported (ie. when :dffi is not present in *features*), cffi:load-foreign-library does not work and you must use ECL's own ffi:load-foreign-library with a constant string argument.

Examples

See Loading foreign libraries.

See Also

close-foreign-library
*darwin-framework-directories*
define-foreign-library
*foreign-library-directories*
load-foreign-library-error
use-foreign-library