SWIGチュートリアルを実行し、そこで提供されている example.c、example.i を使用します。でlispファイルを生成しましswig -cffi example.i
た。
しかし、test.lisp
SBCL で実行すると、未定義のエイリアン関数についての苦情と、example.lisp
それ自体をコンパイルする際の苦情が発生します。私の example.c をライブラリにコンパイルしてから、どうにかして SBCL にそれをロードするように指示する必要があると確信しています! しかし、これを除いて、ドキュメントはこれについて非常に乏しいです。
誰かがこれを行う方法を教えてもらえますか、または 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)