做一個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