如何构建Common Lisp项目?

Lambdas

我是CL的新手,我不知道如何从我的简单项目中构建二进制文件。

我创建了app.asd具有以下内容的文件:

(asdf:defsystem game
  :version "0.0.1"
  :components ((:file "package")
               (:file "main")))

package.lisp 内容

(defpackage :app 
  (:use :common-lisp :asdf) 
  (:export :start))

main.lisp

(in-package :app)

(defun start (args)
  (format t "Hello"))

我还链接app.asd~/quicklisp/quicklisp/app.asd,执行时

(require 'asdf)
(asdf:operate 'asdf:load-op :app)

它看起来像可以编译的东西,但是我在任何地方都找不到二进制文件/目标文件。

如何构建我的项目,以便可以在没有安装CL的情况下将其复制到另一台计算机上并运行它?

我在osx上使用sbcl 1.1.13和asdf 3.0.2。

Xach

请勿将.asd文件放入~/quicklisp/quicklisp/使用~/quicklisp/local-projects/代替。

您的startdefun的语法错误。它需要一个lambda列表。

Common Lisp通常用于启动环境,加载应用程序,然后以交互方式调用应用程序定义的函数来使用。加载过程将源代码编译为机器代码,而您交互调用的函数为已编译函数。

当我想制作一个二进制文件时,可以从命令行运行,我使用buildapp在您的情况下,您可以执行以下操作:

sbcl --no-userinit --no-sysinit --non-interactive --load ~/quicklisp/setup.lisp \
  --eval '(ql:write-asdf-manifest-file "systems.txt")'

buildapp --manifest-file systems.txt \
  --manifest-file ~/quicklisp/local-projects/system-index.txt \
  --load-system game \
  --entry app::start \
  --output game

在此方案中,您将必须修改app::start以接受一个参数,该列表包含一个传递给的所有命令行参数字符串的列表game

通常,大多数Common Lisps都有某种方式来生成独立于正常运行时运行的二进制程序。术语有所不同,但通常称为“交付”。如果将来使用其他Common Lisp,则如果您在文档中搜索有关交付的信息,则可能会获得更多信息。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

(组成)在Common Lisp中

来自分类Dev

如何在Django中构建项目目录?

来自分类Dev

从Common Lisp中的列表中删除项目

来自分类Dev

如何构建Common Lisp项目?

来自分类Dev

如何构建ServiceStack.Host.Mvc项目?

来自分类Dev

如何在Common Lisp中映射功能?

来自分类Dev

在Maven中构建模块时如何构建依赖项目

来自分类Dev

Common Lisp-如何汇总用户输入

来自分类Dev

如何防止Gradle构建非项目目录?

来自分类Dev

如何从Common Lisp调用Go程序

来自分类Dev

Jupyter和Common Lisp

来自分类Dev

我如何让Maven构建它生成的项目?

来自分类Dev

如何在Lisp的同一行上打印两个项目?

来自分类Dev

Common Lisp:如何覆盖插槽访问器?

来自分类Dev

Common Lisp中的'()vs()

来自分类Dev

如何构建包括依赖项的Python项目?

来自分类Dev

#ifndef在Common Lisp中

来自分类Dev

如何从Gradle检出并构建Maven项目?

来自分类Dev

〜|的含义 以Common Lisp格式

来自分类Dev

AOSP项目是如何构建的?

来自分类Dev

从Common Lisp中的列表中删除项目

来自分类Dev

如何在Common Lisp中映射功能?

来自分类Dev

如何安装Maven构建项目?

来自分类Dev

如何从Common Lisp调用Go程序

来自分类Dev

如何分别构建每个项目

来自分类Dev

Common Lisp:是否所有功能都由核心功能CAR,CDR,CONS等构建而成?

来自分类Dev

如何从 JSCL 方法调用 Common Lisp 代码

来自分类Dev

如何构建 Node MongoDB 项目?

来自分类Dev

在 Common Lisp 中构建动态 COND 子句