做一个SWIG 教程,并使用他们在那里提供的 example.c、example.i。我生成了 lisp 文件swig -cffi example.i
。
但是当我test.lisp
使用 SBCL 运行时,我收到关于未定义外星函数的投诉,以及编译example.lisp
自身时的投诉。我很确定我仍然需要将我的 example.c 编译到一个库中,然后以某种方式告诉 SBCL 加载它!但是除了this之外,文档对此非常缺乏。
有人可以告诉我如何做到这一点,还是有比 SWIG 更好的方法来自动从 C/C++ 源生成 CFFI 绑定?
sbcl 输出:
...
;
; caught STYLE-WARNING:
; Undefined alien: "fact"
;
; compilation unit finished
; caught 1 STYLE-WARNING condition
;
; caught STYLE-WARNING:
; Undefined alien: "my_mod"
...
测试.lisp
;call C functions defined in example.c
(require :cffi)
;;;(require :example "example.lisp")
(load "example.lisp")
(fact 2)
(quit)