当前位置:  开发笔记 > 编程语言 > 正文

我可以用c ++扩展lisp吗?

如何解决《我可以用c++扩展lisp吗?》经验,为你挑选了2个好方法。

我可以从用c或c ++编写的库中调用lisp函数吗?我该如何扩展lisp?当你想做一些系统调用或类似的事情时,这很有用.



1> geocar..:

从lisp调用非lisp代码是很少见的,而且很少需要.CLX(CL的X11客户端实现)不链接到Xlib实现,而是直接"说出"X11.在任何系统上,您的CL实现可能已经具有出色的操作系统挂钩,这使得不必要.

也就是说,答案取决于lisp的实现:

在ECL中,您实际上可以在C下托管CL环境,只需调用cl_eval()代码即可执行.这可以让您用C(或C++)编写应用程序(或应用程序主机)并"调用"lisp代码.

在CCL中,有一个C兼容的调用接口,可以让你做这样的事情:

(with-cstrs ((x "Hello World"))
  (#_puts x))

在大多数其他CL实现中(如SBCL;以及是的,这也适用于ECL和CCL),您可以使用UFFI(或CFFI),它只是让您调用C函数,这是其他人正在谈论的.如果这就是你想要的,那么CFFI是一个好的,安全的起点.


*这些*天是现在2012年,而不是2008年我写的那篇:P

2> Doug Currie..:

参见UFFI和CFFI以及光滑的Clozure FFI

推荐阅读
依然-狠幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有