【问题标题】:load a dynamic library from elisp从 elisp 加载动态库
【发布时间】:2022-04-05 04:45:15
【问题描述】:

我需要使用一些本机代码,我想尝试将 elisp 作为脚本语言。 是否可以调用在动态库中实现的本机函数(Windows 中的 dll)?或者唯一的可能是实现本机代码,用 DEFUN (...) 宏包装它并重新编译 emacs?

【问题讨论】:

    标签: emacs elisp


    【解决方案1】:

    您不能使用 Emacs Lisp 代码动态加载库。为了解决这个问题,人们通常调用外部程序(进程)并通过向其发送命令并读取其输出来控制它。

    您可以查看 slime、tramp、gnuserv、movemail 和其他一些类似的 hack 作为示例。

    【讨论】:

      【解决方案2】:

      GNU Emacs 23 支持D-BUS。虽然主要是 Unix 的东西,但 D-BUS 在 Windows 上受支持,并为用户级应用程序提供 IPC 系统。

      你可以用它来构建你想要的东西。

      【讨论】:

        【解决方案3】:

        此功能仅存在于 SXEmacs 中,不支持 Windows,但在 Unix 中可以正常工作

        【讨论】:

          【解决方案4】:

          这可以在终端中使用emacs 完成,并在Linux 上使用IELM REPL 窗口化:

          启动回复:M-x ielm

          在 repl 中运行 (load "<path_to_lisp_source>")

          现在您应该能够运行任何函数或访问此加载源中的数据。

          【讨论】:

            猜你喜欢
            • 2011-05-10
            • 1970-01-01
            • 2012-08-03
            • 1970-01-01
            • 1970-01-01
            • 2019-07-31
            • 2016-10-04
            • 1970-01-01
            相关资源
            最近更新 更多