请教贴::chezscheme使用的两个问题:1.scheme库调用;2.C库调用

By 暗中观察 at 置顶 • 0人收藏 • 445人看过

  在windows系统中使用chez时,有时候换个机子甚至换个其它路径(比如U盘)的emacs,(library-directories "G:/xxx")这句指定库的路径就没有效果了,想请教下解决的方法.

  另外就是在cmd中用gcc编译成的DLL无法被scheme调用,运行(load-shared-object "D:/xx.dll")会提示Exception: (while loading D:/xx.dll) unable to load library.

C文件的预编译是照搬CSUG 4.6节的.求助........

4 个回复 | 最后更新于 置顶
置顶   #1

试试 (library-directories  `(("G:/xxx" . "G:/xxx")))

试试 (library-directories  `(("G:\\xxx" . "G:\\xxx")))

试试 (load-shared-object "D:\\xx.dll")

试试 Linux subsystem  (推荐)

置顶   #2

第一个问题不是很明白,建议启动 Chez 的时候加个 --import-notify 参数看一下搜索过程?另外 Chez 在搜索 libraries 的时候是会读 CHEZSCHEMELIBDIRS  环境变量的,你可以试试预先设置好环境变量。


关于第二个问题,文档里写道:

Under Windows, load-shared-object is based on LoadLibrary. Refer to the documentation for these routines and for the C compiler and loader for precise rules for locating and building shared objects.

load-shared-library 在 Windows 上依赖的是 LoadLibrary , 所以你可能得装 Visual Studio 的工具链然后用 cl 编译。如果用 gcc 的话,可能 Chez 本身要在你的 MinGW 环境中编译出来才行。

置顶   #3

回复#1 @guenchi : (load-shared-object "D:\\xx.dll") 这种方式也不行,看来需要像楼下说的那样,放弃GCC用VS了,要还是不行,就linux..............


置顶   #4

回复#3 @暗中观察 :

用wsl啊 很好用的

登录后方可回帖

登 录
信息栏

Scheme中文社区

推荐实现 ChezScheme / r6rs / r7rs large
theschemer.org
Q群: 724577239

精华导览

社区项目

包管理器:Raven
HTTP服务器:Igropyr (希腊火)
官方插件:vscode-chez

社区目标:

完善足以使Scheme工程化和商业化的库,特别是开发极致速度的Web服务器和ANN模块。

一直以来Scheme缺少一个活跃的中文社区,同时中文资料的稀少,导致大多数因为黑客与画家和SICP而接触Scheme的朋友,在学完SICP后无事可做,不能将Scheme转换为实际的生产力。最后渐渐的放弃。
同时Chicken等实现,却因效率问题无法与其他语言竞争。本社区只有一个目的,传播Scheme的文明之火,在最快的编译器实现上,集众人之力发展出足够与其他语言竞争的社区和库。


友情链接:

Clojure 中文论坛
函数式·China


Loading...