Compilation 如何在编译环境中使用egg?

Compilation 如何在编译环境中使用egg?,compilation,scheme,libraries,chicken-scheme,Compilation,Scheme,Libraries,Chicken Scheme,这是对我的建议的后续行动。不幸的是,这种鸡方案在默认情况下似乎不支持复数,而是提供了一个可以安装的numbersegg 我已经通过chicken install numbers安装了这个egg,我可以在解释环境中加载它。我可以通过调用use;可以在REPL中手动执行,也可以通过csi以脚本形式运行my.scm文件 例如,此脚本可以完美地工作: (use numbers) (begin (display 3+3i) (newline) ) 在运行时使用: csi -s main.scm

这是对我的建议的后续行动。不幸的是,这种鸡方案在默认情况下似乎不支持复数,而是提供了一个可以安装的
numbers
egg

我已经通过
chicken install numbers
安装了这个egg,我可以在解释环境中加载它。我可以通过调用
use
;可以在REPL中手动执行,也可以通过
csi
以脚本形式运行my
.scm
文件

例如,此脚本可以完美地工作:

(use numbers)

(begin
  (display 3+3i)
  (newline)
)
在运行时使用:

csi -s main.scm
但是,当我使用
csc
编译这个完全相同的代码段时(即使没有任何附加标志),我会得到与不加载它时相同的运行时错误(例如,一个未绑定的变量)。似乎在编译环境中
use
没有解决问题

需要注意的另外两件事是,根据文档,我尝试了其他导入功能,如
require extension
require library
等,但都没有效果。另一个是,如果我将模块的名称更改为除
numbers
以外的其他名称,比如
numbers
,它将无法编译,并抱怨无法加载扩展,因此显然它至少检测到安装了
numbers


有人能解释一下,最好是通过一个简短的工作示例,如何在编译环境中使用egg吗?提前感谢!:)

根据Peter Bex在上提供的有用信息,大多数鸡蛋都是开箱即用的,您只需
使用它们即可

不过,某些鸡蛋为基本阅读器提供了扩展,编译器需要了解它们。您可以使用
-X
标志执行此操作。正如上面所说,
numbers
就是其中的一个包

使用以下命令编译代码段:

csc -X numbers-syntax main.scm
工作得很好

我希望这有帮助!:)