Scheme 鸡肉方案——csc无法定位';鸡肉。外国。进口。so';

Scheme 鸡肉方案——csc无法定位';鸡肉。外国。进口。so';,scheme,chicken-scheme,Scheme,Chicken Scheme,我正在尝试用Chicken Scheme编写一个简单的程序,在OSX上使用一些内联C语言,其中Chicken已经安装了自制程序 ;; add1.ss (import foreign) (define add-1 (foreign-lambda* long ((unsigned-long x)) " long n = 1 C_return(n + x);)) (print (

我正在尝试用Chicken Scheme编写一个简单的程序,在OSX上使用一些内联C语言,其中Chicken已经安装了自制程序

;; add1.ss

(import foreign)

(define add-1
  (foreign-lambda* long ((unsigned-long x))
                   "
                   long n = 1
                   C_return(n + x);))

(print (add-1 (read)))
我感兴趣的
foreign
库肯定存在

find /usr/local | grep chicken | grep foreign | grep lib
/usr/local//Cellar/chicken/5.0.0/lib/chicken/9/chicken.foreign.import.so
但是,通过
csc add1.ss
编译我的程序时,在
csc\u选项中没有标记
环境变量会产生:

$ csc add1.ss
Syntax error (import): cannot import from undefined module

        foreign

        Expansion history:

        <syntax>          (##core#begin (import foreign))
        <syntax>          (import foreign)      <--

Error:shell command terminated with non-zero exit status 17920:
'/usr/local/Cellar/chicken/bin/5.0.0/bin/chicken' 'add1.ss' -output-file 'add1.c'
产生同样的故障。在鸡肉手册页中,唯一看起来与路径管理相关的命令行选项是
-include path
。我试过下面的咒语,它们都产生了同样的错误

$ chicken add1.ss -output-file add1.c -include-path /usr/local/Cellar/chicken/5.0.0/lib/chicken/9/chicken.foreign.import.so
$ chicken add1.ss -output-file add1.c -include-path /usr/local/Cellar/chicken/5.0.0/lib/chicken/9
$ chicken add1.ss -output-file add1.c -include-path /usr/local/Cellar/chicken/5.0.0/lib/chicken
$ chicken add1.ss -output-file add1.c -include-path /usr/local/Cellar/chicken/5.0.0/lib
$ chicken add1.ss -output-file add1.c -include-path /usr/local/Cellar/chicken/5.0.0
我还尝试将
chicken.foreign.import.so
作为附加的“待编译文件”传递,但没有成功:

$ chicken add1.ss -output-file add1.c /usr/local/Cellar/chicken/5.0.0/lib/chicken/9/chicken.foreign.import.so 
产生了相同的错误信息


引导chicken或编译器驱动程序csc在
/usr/local/ceral/chicken/…
目录下查找chicken的内部库的正确方法是什么?

foreign
是该模块的旧名称,来自chicken 4。您已经安装了CHICKEN 5,我们已经完全重构了所有模块。为了与其他版本保持一致,此版本已被重命名。在CHICKEN 5中,此模块称为

所以你需要这样做

(import (chicken foreign))

完美的这正是我做错的。如果
chicken.foreign.import.so
由于不小心被安装在一个陌生的位置,您将如何告诉
csc
/
chicken
在何处查找它?您可以使用
chicken\u REPOSITORY\u PATH
环境变量或运行时参数来定义它在何处搜索系统中的动态扩展。但除非你真的知道自己在做什么,否则我不会推荐这样做:)顺便说一句,如果你想要更多的直接支持,我可以推荐你访问
#chicken
。那里的CHICKEN用户比堆栈溢出用户多得多。鸡用户邮件列表也是一个很好的列表。
(import (chicken foreign))