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)
もう一度簡単なものが欠けているに違いないと思います-結果の実行可能ファイルがコマンドライン引数を取るようにする方法を誰かに教えてもらえますか?