1
是否可以在ECL中加載共享庫,導入一些接收並返回cl_object
的C函數(就好像它們是用ecl_def_c_function()
定義的)並在REPL中調用它們(沒有編譯* .lisp文件)?嵌入式通用Lisp(ECL):具有擴展功能的加載共享庫
例如:
// file 'extensions.c' compiled to 'extensions.so'
cl_object
do_something
(cl_object arg)
{
cl_object
result = ...;
return result;
}
; in ECL REPL
(uffi:load-foreign-library #p".../extensions.so")
... ; importing stuff
(format t "got: ~a~%" (do-something "text"))
因爲我發現沒有告訴ECL(通過UFFI)是C函數處理cl_object
,不是一個普通指針(void*)
的方式。