目前,我正试图通过ASDF-VM在M1 Mac上安装SBCL,并且在构建2.2.7时遇到了以下错误:
beginning GENESIS, creating headers in "src/runtime/genesis"
real 0m23.834s
user 0m21.823s
sys 0m1.858s
//entering make-target-1.sh
//building runtime system and symbol table file
rm -f *.[do] sbcl ldb unit-tests sbcl.h core *.tmp libsbcl.a shrinkwrap-sbcl* sbcl.mk
echo '#include "genesis/config.h"' >sbcl.h
echo '#include "genesis/constants.h"' >>sbcl.h
save.c:45:11: fatal error: 'zstd.h' file not found
# include <zstd.h>
^~~~~~~~
1 error generated.
coreparse.c:48:11: fatal error: 'zstd.h' file not found
# include <zstd.h>
^~~~~~~~
1 error generated.
cc -g -Wall -Wundef -Wsign-compare -Wpointer-arith -O3 -g -Wall -fdollars-in-identifiers -fno-omit-frame-pointer -I. -c -o alloc.o alloc.c
cc -g -Wall -Wundef -Wsign-compare -Wpointer-arith -O3 -g -Wall -fdollars-in-identifiers -fno-omit-frame-pointer -I. -c -o backtrace.o backtrace.c
cc -g -Wall -Wundef -Wsign-compare -Wpointer-arith -O3 -g -Wall -fdollars-in-identifiers -fno-omit-frame-pointer -I. -c -o breakpoint.o breakpoint.c
cc -g -Wall -Wundef -Wsign-compare -Wpointer-arith -O3 -g -Wall -fdollars-in-identifiers -fno-omit-frame-pointer -I. -c -o coalesce.o coalesce.c
cc -g -Wall -Wundef -Wsign-compare -Wpointer-arith -O3 -g -Wall -fdollars-in-identifiers -fno-omit-frame-pointer -I. -c -o coreparse.o coreparse.c
coreparse.c:48:11: fatal error: 'zstd.h' file not found
# include <zstd.h>
^~~~~~~~
1 error generated.
make: *** [coreparse.o] Error 1
Installed SBCL
/Users/exysle/.asdf/plugins/sbcl/bin/install: line 190: /Users/exysle/.asdf/installs/sbcl/2.2.7/bin/sbcl: No such file or directory看起来这个bug在2.2.7和2.2.6中很明显,但它似乎安装得很完美。
发布于 2022-08-13 08:47:56
这是因为SBCL2.2.6和更高版本使用zstd进行核心压缩,而且可能没有随macOS一起提供(当然,我无法在我的机器上找到它)。
我不理解asdf-vm,但是它看起来像是SBCL的插件是这里,它在其先决条件中显式列出zstd是很重要的。
只有在使用--fancy选项进行构建时才会遇到这个问题:除非您使用它,否则构建将不包括核心压缩内容。如果我用./make/sh --fancy构建,那么它就会以这种方式失败。
诊断这种情况的一种方法是运行./make-config.sh,然后查看local-target-features.lisp-expr中的内容。它不应该包含对:sb-core-compression的任何提及:如果是这样的话,您将需要zstd。
https://stackoverflow.com/questions/73340204
复制相似问题