首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将buildapp与quicklisp结合使用

如何将buildapp与quicklisp结合使用
EN

Stack Overflow用户
提问于 2013-09-20 12:40:57
回答 1查看 1.6K关注 0票数 10

我想使用buildapp使curl-lisp可执行文件成为一个示例

代码语言:javascript
复制
buildapp --output lisp-curl --asdf-path ~/src/clbuild/systems/ \
    --load-system drakma \
    --eval '(defun main (args) (write-string (drakma:http-request (second args))))' \
    --entry main

由于我没有路径"~/src/clbuild/ systems /",在使用quicklisp时,我的系统应该位于"~/quicklisp/dists/quicklisp/software",但当我执行以下操作时:

代码语言:javascript
复制
buildapp --output lisp-curl  \
         --asdf-path ~/quicklisp/dists/quicklisp/software      \
         --load-system drakma     \
         --eval '(defun main (args) (write-string (drakma:http-request (second args))))'   \
         --entry main

; file: /home/simkoc/dumper-YKYna1b3.lisp
; in: DEFUN DUMP-FILE-DEBUGGER
;     (QUIT :UNIX-STATUS 111)
; 
; caught STYLE-WARNING:
;   SB-EXT:QUIT has been deprecated as of SBCL 1.0.56.55. Use SB-EXT:EXIT or
;   SB-THREAD:ABORT-THREAD instead.
;   
;   In future SBCL versions SB-EXT:QUIT will signal a full warning at compile-time.
; 
; compilation unit finished
;   caught 1 STYLE-WARNING condition
Fatal MISSING-COMPONENT:
  Component "drakma" not found

对一个问题的回答已经暗示,quicklisp能够以buildapp能够检索它的方式导出其系统,但遗憾的是,它没有详细说明。

我还尝试不使用--asdf-path,因为SBCL (启动时)已经能够使用(require 'drakma)(asdf:load-system "drakma")加载Drakma。同时,使用--require而不是--load-system也不会做这笔交易。

因此:我如何结合使用buildapp和quicklisp来制作一个具有所需系统的可执行文件(我只是简单介绍了缺少的组件部分)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-20 14:01:07

如果Drakma已经安装在quicklisp中,我认为如果您使用--asdf-tree而不是--asdf-path,您的示例将有效。但是使用Quicklisp目录作为树可能会带来一些麻烦,因为树中的每个系统文件都不是要加载的。

还有一种更紧密地与Quicklisp对可用系统的知识进行集成的选择。我要做的是:

代码语言:javascript
复制
sbcl --no-userinit --no-sysinit --non-interactive \
     --load ~/quicklisp/setup.lisp \
     --eval '(ql:quickload "drakma")' \
     --eval '(ql:write-asdf-manifest-file "quicklisp-manifest.txt")'

buildapp --manifest-file quicklisp-manifest.txt --load-system drakma [the rest of your options]

第一个命令确保drakma已被下载,而且Quicklisp所知道的系统索引是在quicklisp-plom.txt中。第二种方法使用该索引使用已安装的Quicklisp系统构建应用程序。

票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18917067

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档