Wykonanie SWIG tutorial i użycie przykładów example.c, example.i, ponieważ zostały tam dostarczone. Wygenerowałem plik lisp z swig -cffi example.i
.CL i SWIG: przykład pracy?
Ale kiedy uruchamiam test.lisp
z SBCL, otrzymuję skargę dotyczącą niezdefiniowanej funkcji cudzoziemca, a także reklamacje podczas kompilowania samego example.lisp
. Jestem prawie pewien, że muszę jeszcze skompilować mój plik example.c do biblioteki, a następnie jakoś powiedzieć SBCL, aby go załadował! Ale dokumenty są bardzo skąpe, z wyjątkiem this.
Czy ktoś może mi powiedzieć, jak to zrobić, czy jest lepszy sposób niż SWIG do automatycznego generowania powiązań CFFI ze źródeł C/C++?
wyjście 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)
piękne. musiałem również ustawić LD_LIBRARY_PATH, aby można było znaleźć moją bibliotekę libexample.so. Możesz dodać to do swojej odpowiedzi. –