1

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

  • 全局适用于我的系统(例如,应该适用于通过 Quicklisp 加载的包)

  • 每次开始时都没有加载 CFFIsbcl吗?

忽略第二个标准,我可以添加几行~/.sbclrc

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

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

4

1 回答 1

3

我认为您应该尝试使用底层系统的机制,即在 Linux ldconfig(resp. ld.so.conf) 上,在 MacOS 上DYLD_LIBRARY_PATH。CFFI 手册说*foreign-library-directories*只有在系统机制失败时才用作后备。

于 2019-11-20T09:16:07.717 回答