首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >鸡方案-- csc无法定位“chicken.foreign.import.so”

鸡方案-- csc无法定位“chicken.foreign.import.so”
EN

Stack Overflow用户
提问于 2018-12-06 19:14:15
回答 1查看 218关注 0票数 0

我试图写一个简单的程序在鸡计划与一些内联C在OS,其中鸡已经安装了自制。

代码语言:javascript
复制
;; 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库确实存在。

代码语言:javascript
复制
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_OPTIONS环境变量中没有标志,会产生以下结果:

代码语言:javascript
复制
$ 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'

因此,这个错误消息很有意义,运行

代码语言:javascript
复制
$ chicken add1.ss -output-file add1.c

也会产生同样的失败。在鸡肉手册中,似乎与路径管理相关的唯一命令行选项是-include-path。我试过以下咒语,它们都产生了同样的错误。

代码语言:javascript
复制
$ 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作为附加的“要编译的文件”传递,但没有结果:

代码语言:javascript
复制
$ 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/Cellar/chicken/...目录下查找小鸡的内部库?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-06 20:13:56

foreign是该模块的旧名称,源自鸡肉4。您已经安装了鸡肉5,在这里我们已经完全重构了所有模块。为了与其他人保持一致,这个特殊的名字被简单地重新命名了。在小鸡5中,这个模块被称为(外国鸡)

所以你需要

代码语言:javascript
复制
(import (chicken foreign))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53658194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档