做一个SWIG tutorial,并使用它们提供的example.c,example.i。我生成了与swig -cffi example.i
lisp文件。CL和SWIG:工作示例?
但是当我用SBCL运行test.lisp
时,我收到了关于未定义外来函数的投诉,以及编译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"
...
test.lisp
;call C functions defined in example.c
(require :cffi)
;;;(require :example "example.lisp")
(load "example.lisp")
(fact 2)
(quit)
美丽。还必须设置LD_LIBRARY_PATH,以便可以找到我的libexample.so。你可能想把这个添加到你的答案中。 – 2013-03-11 20:17:17