我有一个Lisp(SBCL 1.0.40.0.debian)应用程序(myfitnessdata),它使用以下代码处理命令行参数:
(:use :common-lisp)
(:export #:main))
(in-package :myfitnessdata)
(require :sb-posix)
;; snip
(defun main ()
(if (= (length sb-ext:*posix-argv*) 3)
(let ((username (nth 0 sb-ext:*posix-argv*))
(password (nth 1 sb-ext:*posix-argv*))
(path (nth 2 sb-ext:*posix-argv*)))
(scrape (username password path)))
(show-usage)))
我正在使用以下Lisp代码编译此应用程序:
(load "myfitnessdata.lisp")
(save-lisp-and-die "myfitnessdata.bin" :executable t :toplevel 'myfitnessdata:main)
这会产生一个我可以运行的可执行文件。但是,sb-ext:*posix-argv*
列表始终为空。如果我运行以下内容:
./myfitnessdata.bin myusername mypassword /home/me/data
...然后我得到的是(show-usage)
生成的使用说明。
我想我必须再次遗漏一些简单的事情 - 有人可以让我知道如何(save-lisp-and-die)
使得生成的可执行文件获取命令行参数吗?
答案 0 :(得分:2)