0
我想知道,如果可能的话,最好的方法是在CHICKEN-Scheme中动态加载编译后的代码。 API状态load
只加载源文件。在CHICKEN-Scheme中动态加载编译后的库
具体而言,我在动态加载代码的目标是能够覆盖以前定义的函数。也就是说foo
库1将得到由不同foo
图书馆2
我想知道,如果可能的话,最好的方法是在CHICKEN-Scheme中动态加载编译后的代码。 API状态load
只加载源文件。在CHICKEN-Scheme中动态加载编译后的库
具体而言,我在动态加载代码的目标是能够覆盖以前定义的函数。也就是说foo
库1将得到由不同foo
图书馆2
的documentation为load
更换说
在支持它(目前BSD,俳句,MacOS X系统,Linux和Solaris平台上,和Windows),可用于负载来加载编译的程序
这意味着你可以实际上加载与load
.so
文件。替换一个标识符是可能的,简单地说就是set!
将它改为不同的值。
如果你想从任意目录动态加载代码,我认为load
是你最好的选择。
非常感谢!有效!令人讨厌的是,文档的一部分说的与[另一个]不同(http://api.call-cc.org/doc/scheme/load)。对于那些漫游的人,我首先编译了'lib-1.ss '用'csc -t lib-1.ss'对c进行编译,然后用'gcc -shared lib-1.so -fPIC lib-1.c'编译'.so'文件。加载''时有一个烦人的限制。 so'文件:“编译的文件只能加载一次,后续加载同一文件的尝试不起作用。”但正如你所说,我可以用'set!'来解决这个问题 –
注意到太迟的错字:'gcc -shared -o lib-1.so -fPIC lib-1.c' –
你说的不一致在文档中。 “方案”部分是从R5RS复制的,这就是为什么说这一点。我们必须解决这个问题...... – sjamaan