全局添加一个目录到 cffi:*foreign-library-directories*

Adding a directory globally to cffi:*foreign-library-directories*

我在 macOS 下使用 Nix 包管理器来安装我的大部分软件,包括动态库。我想让 CFFI 可以访问它们。这意味着添加到 cffi:*foreign-library-directories* 的路径。很好,但是我该怎么做

忽略第二个条件,我可以在~/.sbclrc中添加几行:

(ql:quickload "CFFI")
(pushnew (merge-pathnames ".nix-profile/lib/" (user-homedir-pathname))
         cffi:*foreign-library-directories*
         :test #'equal)

我正在寻找的是一种在加载 CFFI 后添加路径的方法。有点像 Emacs Lisp 中的 eval-after-load。这可能吗?

我认为你应该尝试使用底层系统的机制,i。 e.在 Linux ldconfig(相应 ld.so.conf)上,在 MacOS DYLD_LIBRARY_PATH 上。 CFFI 手册说 *foreign-library-directories* 仅在系统机制失败时用作回退。