【问题标题】:Dynamically Loading Compiled Libraries in CHICKEN-Scheme在 CHICKEN-Scheme 中动态加载编译的库
【发布时间】:2016-02-17 03:43:58
【问题描述】:

如果可能的话,我想知道在 CHICKEN-Scheme 中动态加载编译代码的最佳方式。 API 声明 load 只加载源文件。

具体来说,我动态加载代码的目标是能够覆盖以前定义的函数。也就是说,库 1 中的 foo 将被库 2 中的另一个 foo 替换。

【问题讨论】:

    标签: scheme chicken-scheme


    【解决方案1】:

    loaddocumentation 表示

    在支持它的平台上(目前是BSD、Haiku、MacOS X、Linux、Solaris和Windows),load可以用来加载编译好的程序

    这意味着您可以实际加载带有load.so 文件。替换标识符是可能的,只需将其set!ting 为不同的值。

    如果你想从任意目录动态加载代码,我认为load 是你最好的选择。

    【讨论】:

    • 非常感谢!有效!令人讨厌的是文档的一部分说与another.不同的东西对于那些徘徊的人,我首先用csc -t lib-1.sslib-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 复制的,这就是它这么说的原因。我们必须解决这个问题...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多