dump每个编译单元及其依赖项的c源代码



我有以下包定义。我如何编译所有的组件递归,以及他们的依赖到C源?换句话说,我想保留所有用于构建本机可执行文件的 C文件。

目前,我使用(asdf:make-build :example,但没有留下任何C文件。

我期待看到

simple.c
simple.h
simple.data
cl-opengl.c
cl-opengl.h
...

example.asd:

(defsystem :example
  :depends-on (:cl-opengl :cl-glu :cl-glut)
  :serial t
  :components ((:file "simple")))

cl-opengl.asd:

(defsystem cl-opengl
  :description "Common Lisp bindings to OpenGL."
  :depends-on (cffi alexandria)
  :components
  ((:module "gl"
    :components
    ((:file "bindings-package")
     (:file "constants" :depends-on ("bindings-package"))
     (:file "library" :depends-on ("bindings-package"))
     (:file "bindings" :depends-on ("bindings-package" "constants" "library"))
     ...

正如ECL邮件列表中所解释的,将c::*delete-files*设置为NIL将阻止编译器删除中间的c文件。它们的扩展名为*.c, *。Eclh(头)和*。数据(对象的文本定义),但是它们的名字是由ASDF处理的(它们得到一些ASDF前缀IIRC),并且它们不是在lisp源代码所在的地方创建的,而是在ASDF的缓存目录(通常是~/.cache/common-lisp/ecl-…)

相关内容

  • 没有找到相关文章

最新更新