快速加载和编译系统
Quickload and compile system
我是 Lisp 项目结构世界的新手,我在 Lisp 中处理了我的第一个更大的项目。这就是为什么我从 quickproject:make-project
制作的项目框架开始的原因。之后,我的第一个想法是创建一个文件夹结构,但我不知道我到底想怎么做,所以我只是做了几个文件来分割代码。
我将一些代码放在一个名为 pixel.lisp
的文件中,一些放在 gameview.lisp
中,主循环在 pixelworld.lisp
.
中
我的 asd 文件如下所示:
;;;; pixelworld.asd
(asdf:defsystem #:pixelworld
:description "Describe pixelworld here"
:author "Your Name <your.name@example.com>"
:license "Specify license here"
:version "0.0.1"
:serial t
:depends-on (:sdl2 :cl-opengl)
:components ((:file "package")
(:file "pixel")
(:file "gameview")
(:file "pixelworld")))
如果我理解正确,这个文件应该告诉 quickproject
当我 ql:quickload
它时如何编译我的系统。因为 :serial
是 t
它应该按顺序编译。如果我从上到下手动编译和评估每个文件,这没有任何问题,因此依赖项没有问题。但是当我 ql:quickload
项目并使用 (in-package :pixelworld)
进入包时,我无法 运行 main 函数,因为我系统中的其他表达式未被评估。有什么我不了解的基本知识,或者我必须使用 quicklisp 使用另一个命令来获得我想要的东西吗?提前致谢。 :)
就像评论中提到的 Travis Sunderland 和 tfg 一样,在每个文件的顶部都有 (in-package :pixelworld) 很重要。更改后它完美运行。
我是 Lisp 项目结构世界的新手,我在 Lisp 中处理了我的第一个更大的项目。这就是为什么我从 quickproject:make-project
制作的项目框架开始的原因。之后,我的第一个想法是创建一个文件夹结构,但我不知道我到底想怎么做,所以我只是做了几个文件来分割代码。
我将一些代码放在一个名为 pixel.lisp
的文件中,一些放在 gameview.lisp
中,主循环在 pixelworld.lisp
.
我的 asd 文件如下所示:
;;;; pixelworld.asd
(asdf:defsystem #:pixelworld
:description "Describe pixelworld here"
:author "Your Name <your.name@example.com>"
:license "Specify license here"
:version "0.0.1"
:serial t
:depends-on (:sdl2 :cl-opengl)
:components ((:file "package")
(:file "pixel")
(:file "gameview")
(:file "pixelworld")))
如果我理解正确,这个文件应该告诉 quickproject
当我 ql:quickload
它时如何编译我的系统。因为 :serial
是 t
它应该按顺序编译。如果我从上到下手动编译和评估每个文件,这没有任何问题,因此依赖项没有问题。但是当我 ql:quickload
项目并使用 (in-package :pixelworld)
进入包时,我无法 运行 main 函数,因为我系统中的其他表达式未被评估。有什么我不了解的基本知识,或者我必须使用 quicklisp 使用另一个命令来获得我想要的东西吗?提前致谢。 :)
就像评论中提到的 Travis Sunderland 和 tfg 一样,在每个文件的顶部都有 (in-package :pixelworld) 很重要。更改后它完美运行。