SWIG tutorial을 수행하고 거기에 제공된대로 example.c, example.i를 사용하십시오. swig -cffi example.i
으로 lisp 파일을 생성했습니다.CL 및 SWIG : 작동 예제?
그러나 SBCL로 test.lisp
을 실행하면 정의되지 않은 외계인 기능에 대한 불만 사항과 example.lisp
을 컴파일 할 때 불만이 나타납니다. 나는 아직도 내 example.c를 라이브러리로 컴파일해야만하고, 어떻게해서 SBCL이 그것을로드하도록 말할 것인가! 그러나 this을 제외하고는 문서가 매우 부족합니다.
누군가이 방법을 알려줄 수 있습니까? 아니면 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)
아름다운. 또한 내 libexample.so를 찾을 수 있도록 LD_LIBRARY_PATH를 설정해야했습니다. 이 질문을 답안에 추가 할 수 있습니다. –