gpt4 book ai didi

linux - Guile 2.2的POSIX包如何使用?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:54:38 27 4
gpt4 key购买 nike

上下文:

我目前正在编写 generate-ninja-build.scm git commit cb7530e3ff10 中的脚本我的 GPLv3+ 项目 bismon (由 H2020 研究项目资助)。根据契约(Contract),这是一些应该在 Debian 上运行的 Linux 自由软件项目。

该脚本应该成为对现有 shell 脚本的改进 bismon/generate-ninja-builder.shninja 生成一些 build.ninja 文件工具(一些 build automation 一个)。

问题:

当前的 generate-ninja-build.scm 刚刚(版权声明评论之外):

 (use-modules
;; see https://www.gnu.org/software/guile/manual/html_node/Modules.html
(ice-9 posix) ;;;; problematic line, but why ?
(ice-9 readline)
(ice-9 format)
(ice-9 pretty-print)
)

;;;;;;;;;;;;;;;; constants
(define bm-packages '("glib-2.0" "jansson" "gtk+-3.0"))
(define bm-gcc "gcc")

但是当我在我的 Debian/Sid 上以 ./generate-ninja-build.scm 运行它时,它的 guile --version 给出了

guile (GNU Guile) 2.2.4
Packaged by Debian (2.2.4-deb+1-3)

我得到:

rimski.x86_64 ~/bismon 8:17 .0 % ./generate-ninja-build.scm 
;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
;;; or pass the --no-auto-compile argument to disable.
;;; compiling /home/basile/bismon/./generate-ninja-build.scm
;;; WARNING: compilation of /home/basile/bismon/generate-ninja-build.scm failed:
;;; no code for module (ice-9 posix)
Backtrace:
9 (primitive-load "/home/basile/bismon/./generate-ninja-b…")
In ice-9/eval.scm:
721:20 8 (primitive-eval (use-modules (ice-9 posix) (ice-9 #) # …))
In ice-9/psyntax.scm:
1235:36 7 (expand-top-sequence ((use-modules (ice-9 posix) (…) …)) …)
1182:24 6 (parse _ (("placeholder" placeholder)) ((top) #(# # …)) …)
285:10 5 (parse _ (("placeholder" placeholder)) (()) _ c&e (eval) …)
In ice-9/boot-9.scm:
3377:20 4 (process-use-modules _)
222:17 3 (map1 (((ice-9 posix)) ((ice-9 readline)) ((ice-9 #)) #))
3378:31 2 (_ ((ice-9 posix)))
2803:6 1 (resolve-interface _ #:select _ #:hide _ #:prefix _ # _ …)
In unknown file:
0 (scm-error misc-error #f "~A ~S" ("no code for modu…" …) …)

ERROR: In procedure scm-error:
no code for module (ice-9 posix)

但是 locate ice-9/posix 的输出包括:

/usr/lib/x86_64-linux-gnu/guile/2.0/ccache/ice-9/posix.go
/usr/lib/x86_64-linux-gnu/guile/2.2/ccache/ice-9/posix.go
/usr/share/guile/2.0/ice-9/posix.scm
/usr/share/guile/2.2/ice-9/posix.scm

所以我期待(ice-9 posix)行能正常工作。
如果我评论那行,一切都会如我所愿。

我的 ~/.guile 有:

;; file ~/.guile
(use-modules
(ice-9 readline)
(ice-9 format)
(ice-9 pretty-print))

(activate-readline)

my interactive guile works like a charm具有预期的精美 GNU readline 和自动完成界面。

我做错了什么?

最佳答案

sudo apt install guile-2.2-dev guile-2.0-dev guile-1.8-dev

考虑使用 Guix 而不是 Debian。默认情况下安装所有开发依赖项以替换 Python。 http://guix.gnu.org/

关于linux - Guile 2.2的POSIX包如何使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57034154/

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