我有(load "foo.import.scm")
,当我编译一切正常时,只要我从同一目录执行程序。否则它抱怨无法找到" foo.import.scm"
Error: (open-input-file) cannot open file - No such file or directory: "foo.import.scm"
如果我这样做
csc -s foo.scm -emit-import-library foo
然后
(import foo)
它编译好但后来抱怨
Error: (require) cannot load extension: foo
从其他目录运行时
如果我这样做
(use foo)
然后抱怨
Error: (require) cannot load extension: foo
当我从不同的目录运行它时。
将此模块加载到我的程序中以便将其包含在可执行文件中的正确方法是什么?应该将不同的旗帜传递给csc
?文档并没有让我明白解决方案。
答案 0 :(得分:0)
ma_782 = sqldf("SELECT t1.Id_indicator, t1.Hour,
(SELECT AVG(t2.Value)
FROM max_value_782 AS t2
WHERE t1.Hour = t2.Hour
AND strftime('%w', t1.Date) = strftime('%w', t2.Date)
AND (t2.Date - t2.Date) BETWEEN 1 AND 42
) AS MA_by_weekday
FROM max_value_782 AS t1;")
是一个运行时事物。它基本上是load
(但需要注意的是CHICKEN也可以(eval (cons 'begin (read-all)))
二进制load
文件。 .so
将始终从当前目录加载,除非您使用绝对路径。
如果要在已编译的程序中使用该模块,请不要加载导入库;当您load
相应的模块时,编译器会自动执行此操作。
也许你可以解释一下你的项目结构?问题并不清楚到底在哪里。