gpt4 book ai didi

scheme - 如何静态链接使用扩展的 Chicken Scheme 程序?

转载 作者:行者123 更新时间:2023-12-04 17:57:35 28 4
gpt4 key购买 nike

我需要编译和静态链接一个Chicken程序。我希望使用许多扩展,最著名的是 http-client

我可以使用以下命令编译源代码:

csc -compile-syntax -static linux-setup.scm

csc -R http-client -compile-syntax -static linux-setup.scm

但是当我运行它时,出现以下错误:

Error: (require) cannot load extension: http-client

Call history:

##sys#require <--

我也在源代码中尝试了 (declare (uses http-client)),但没有成功:

linux-setup.o: In function `f_369':
/mnt/data/Documents/Programming/chicken-scheme/linux-setup/linux-setup.c:219:
undefined reference to `C_http_2dclient_toplevel'
collect2: error: ld returned 1 exit status

Error: shell command terminated with non-zero exit status 256: 'gcc' 'linux-setup.o'
-o 'linux-setup' -L"/usr/lib" -Wl,-R"/usr/lib" -static '/usr/lib/libchicken.a' -lm -ldl

静态链接是我需要的东西。这不是 XY 问题。我需要我的可执行文件在没有依赖项的新安装的 Linux 系统上运行。这是我最初从 Common Lisp 转向 Scheme 的主要原因。

请问我做错了什么?

最佳答案

假设您的程序在 a-program.scm 文件中:

csc -deploy a-program.scm
cd a-program/
chicken-install -deploy -p $PWD http-client

...瞧瞧!

编辑: 原来发布的问题的正确答案已在本文档中解决:http://www.foldling.org/scheme.html#compiling-statically-linked-chicken-scheme-programs-with-extensions

关于scheme - 如何静态链接使用扩展的 Chicken Scheme 程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38928186/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com