gpt4 book ai didi

compilation - ECL - 为每个编译单元及其依赖项转储 c 源代码?

转载 作者:太空宇宙 更新时间:2023-11-03 18:36:39 24 4
gpt4 key购买 nike

我有以下包定义。如何以递归方式将所有组件及其依赖项编译为 C 源代码?换句话说,我想保留用于构建 native 可执行文件的所有 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( header )和 *.data(对象的文本定义),但它们的名称由 ASDF 处理(它们有一些 ASDF- 前缀 IIRC)并且它们不是在 lisp 源所在的位置创建的,而是在 ASDF 的缓存目录(通常是 ~/.cache/common-lisp/ecl-...)

关于compilation - ECL - 为每个编译单元及其依赖项转储 c 源代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15163967/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com