如何在单独的目录中使用Chicken Scheme模块?

如何在单独的目录中使用Chicken Scheme模块?,scheme,chicken-scheme,Scheme,Chicken Scheme,我有以下项目结构: . ├── main.scm └── stream ├── stream.import.scm ├── stream.scm └── stream.so stream.scm定义了一个模块: ;stream.scm (模块流) (...) (进口计划(鸡肉基地)) ...) 和main.scm使用stream模块: ;main.scm (导入流) ... 我通过csc-s stream.scm-j stream编译了stream。 我想使用嵌套在

我有以下项目结构:

.
├── main.scm
└── stream
    ├── stream.import.scm
    ├── stream.scm
    └── stream.so
stream.scm
定义了一个模块:

;stream.scm
(模块流)
(...)
(进口计划(鸡肉基地))
...)
main.scm
使用
stream
模块:

;main.scm
(导入流)
...
我通过
csc-s stream.scm-j stream
编译了
stream
。 我想使用嵌套在
stream
目录中的
stream
模块编译
main.scm
,但我找不到一种方法

我读了手册页,我试了一下

csc main.scm-I./stream
但这也提示了一个警告

Warning: the following extensions are not currently installed: stream
并且可执行文件不工作:

Error: (require) cannot load extension: stream
...
当我将
main.scm
放在
stream
目录中时,它确实起作用


如何使
main.scm
了解
模块?

我想您可能需要为此项目设置
CHICKEN\u REPOSITORY\u路径

例如:

~/dev/scheme/subdir_test$ chicken-install -repository
/home/richardh/dev/chicken/lib/chicken/11

~/dev/scheme/subdir_test$ export CHICKEN_REPOSITORY_PATH="/home/richardh/dev/chicken/lib/chicken/11:/home/richardh/dev/scheme/subdir_test/sub/"
如果你在谷歌上搜索“鸡肉计划virtualenv”,你会发现一些更复杂版本的例子

如果您想安装多个版本的鸡肉,您可能还对“鸡带”和“灰尘”鸡蛋感兴趣

~/dev/scheme/subdir_test$ cat alpha.scm 
(import beta)

(print "Hello " (hello_name))
~/dev/scheme/subdir_test$ cat sub/beta.scm 
(module beta (hello_name)

  (import scheme)

  (define (hello_name)
    "World")
)
~/dev/scheme/subdir_test$ cd sub/
~/dev/scheme/subdir_test/sub$ csc -s beta.scm -j beta
~/dev/scheme/subdir_test/sub$ cd ..
~/dev/scheme/subdir_test$ csc alpha.scm 
~/dev/scheme/subdir_test$ ./alpha 
Hello World