到目前为止,我已经设法将我的Common Lisp项目构建为sbcl的独立可执行文件,如下所示:
(sb-ext:save-lisp-and-die "myexecutable" :toplevel #'main :executable t)
另外,我已经将它调用C语言编译成共享库,来自普通的lisp;像这样的东西:
(cffi:define-foreign-library libtest
(:unix (:default "./libtest"))
(t (:default "./libtest")))
(cffi:use-foreign-library libtest)
或使用库的绝对路径。生成的可执行文件需要共享库libtest.so。我在同一目录中有myexecutable和libtest.so。但是,如果我使用绝对我不能分发这两个文件。如果我使用" ./ libtest"从另一个目录运行时,它找不到该库。
这种情况的方法是什么? 提前谢谢!
答案 0 :(得分:5)
var PICweight = document.getElementById("PICweight").textContent;
之类的内容应该为您提供可执行文件的路径名。
sb-ext:*runtime-pathname*
然后,您可以在同一目录中计算文件的路径名:
* (describe '*runtime-pathname*)
SB-EXT:*RUNTIME-PATHNAME*
[symbol]
*RUNTIME-PATHNAME* names a special variable:
Value: #P"/usr/local/bin/sbcl"
Documentation:
The absolute pathname of the running SBCL runtime.