对 common lisp 来说相当陌生。我正在尝试编译一个程序
(sb-ext:save-lisp-and-die "my-app.exe" :toplevel #'my-app:main)
我正在 64 位 ubuntu 22.04.4 Linux 机器上工作,并使用 SBCL 2.1.11.debian 进行编译。
尝试编译时,我不断收到以下错误消息。据我了解,这意味着 sbcl 请求特定的内存映射,但我的操作系统将其映射到不同的位置。它确实创建了一个 exe 文件,但这只是一个 0 字节的空文件。
[undoing binding stack and other enclosing state... done]
mmap: wanted 53575680 bytes at 0x1000000000, actually mapped at 0x7c21bea00000
Dump of /proc/self/maps:
50000000-50100000 rwxp 00000000 00:00 0
50100000-50108000 rwxp 00008000 08:03 10494419 /usr/lib/sbcl/sbcl.core
50108000-50200000 rwxp 00000000 00:00 0
50200000-50242000 rwxp 01840000 08:03 10494419 /usr/lib/sbcl/sbcl.core
50242000-503c8000 rwxp 01882000 08:03 10494419 /usr/lib/sbcl/sbcl.core
503c8000-52a00000 rwxp 00000000 00:00 0
52a00000-53450000 rwxp 01a08000 08:03 10494419 /usr/lib/sbcl/sbcl.core
53450000-5ac00000 rwxp 00000000 00:00 0
1003318000-1040000000 rwxp 00000000 00:00 0
589ef8d35000-589ef8d45000 r--p 00000000 08:03 10494116 /usr/bin/sbcl
589ef8d45000-589ef8d79000 r-xp 00010000 08:03 10494116 /usr/bin/sbcl
589ef8d79000-589ef8d87000 r--p 00044000 08:03 10494116 /usr/bin/sbcl
589ef8d87000-589ef8d89000 r--p 00052000 08:03 10494116 /usr/bin/sbcl
589ef8d89000-589ef8d8b000 rw-p 00054000 08:03 10494116 /usr/bin/sbcl
589ef8d8b000-589ef8d92000 rw-p 00000000 00:00 0
589ef9ea7000-589ef9f1a000 rw-p 00000000 00:00 0 [heap]
7c21bea00000-7c21c1d18000 rwxp 00000000 00:00 0
7c21c1d48000-7c21c1e00000 rw-p 00000000 00:00 0
7c21c1e00000-7c21c1e08000 ---p 00000000 00:00 0
7c21c1e08000-7c21c1e10000 r--p 00000000 00:00 0
7c21c1e10000-7c21c20f0000 rwxp 00000000 00:00 0
7c21c20f0000-7c21c2110000 ---p 00000000 00:00 0
7c21c2110000-7c21c2251000 rwxp 00000000 00:00 0
7c21c2302000-7c21c2352000 rw-p 00000000 00:00 0
7c21c235d000-7c21c2400000 rw-p 00000000 00:00 0
7c21c2400000-7c21c2428000 r--p 00000000 08:03 10487796 /usr/lib/x86_64-linux-gnu/libc.so.6
7c21c2428000-7c21c25bd000 r-xp 00028000 08:03 10487796 /usr/lib/x86_64-linux-gnu/libc.so.6
7c21c25bd000-7c21c2615000 r--p 001bd000 08:03 10487796 /usr/lib/x86_64-linux-gnu/libc.so.6
7c21c2615000-7c21c2616000 ---p 00215000 08:03 10487796 /usr/lib/x86_64-linux-gnu/libc.so.6
7c21c2616000-7c21c261a000 r--p 00215000 08:03 10487796 /usr/lib/x86_64-linux-gnu/libc.so.6
7c21c261a000-7c21c261c000 rw-p 00219000 08:03 10487796 /usr/lib/x86_64-linux-gnu/libc.so.6
7c21c261c000-7c21c2629000 rw-p 00000000 00:00 0
7c21c2632000-7c21c263d000 rw-p 00000000 00:00 0
7c21c2646000-7c21c2649000 rw-p 00000000 00:00 0
7c21c2649000-7c21c2657000 r--p 00000000 08:03 10487802 /usr/lib/x86_64-linux-gnu/libm.so.6
7c21c2657000-7c21c26d3000 r-xp 0000e000 08:03 10487802 /usr/lib/x86_64-linux-gnu/libm.so.6
7c21c26d3000-7c21c272e000 r--p 0008a000 08:03 10487802 /usr/lib/x86_64-linux-gnu/libm.so.6
7c21c272e000-7c21c272f000 r--p 000e4000 08:03 10487802 /usr/lib/x86_64-linux-gnu/libm.so.6
7c21c272f000-7c21c2730000 rw-p 000e5000 08:03 10487802 /usr/lib/x86_64-linux-gnu/libm.so.6
7c21c2730000-7c21c2732000 r--p 00000000 08:03 10485950 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11
7c21c2732000-7c21c2743000 r-xp 00002000 08:03 10485950 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11
7c21c2743000-7c21c2749000 r--p 00013000 08:03 10485950 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11
7c21c2749000-7c21c274a000 ---p 00019000 08:03 10485950 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11
7c21c274a000-7c21c274b000 r--p 00019000 08:03 10485950 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11
7c21c274b000-7c21c274c000 rw-p 0001a000 08:03 10485950 /usr/lib/x86_64-linux-gnu/libz.so.1.2.11
7c21c274e000-7c21c2750000 rw-p 00000000 00:00 0
7c21c2751000-7c21c275b000 rw-p 00000000 00:00 0
7c21c275c000-7c21c275f000 rw-p 00000000 00:00 0
7c21c275f000-7c21c2761000 r--p 00000000 08:03 10487183 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2
7c21c2761000-7c21c278b000 r-xp 00002000 08:03 10487183 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2
7c21c278b000-7c21c2796000 r--p 0002c000 08:03 10487183 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2
7c21c2796000-7c21c2797000 ---p 00000000 00:00 0
7c21c2797000-7c21c2799000 r--p 00037000 08:03 10487183 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2
7c21c2799000-7c21c279b000 rw-p 00039000 08:03 10487183 /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2
7ffde58b0000-7ffde58d2000 rw-p 00000000 00:00 0 [stack]
7ffde59a0000-7ffde59a4000 r--p 00000000 00:00 0 [vvar]
7ffde59a4000-7ffde59a6000 r-xp 00000000 00:00 0 [vdso]
ffffffffff600000-ffffffffff601000 --xp 00000000 00:00 0 [vsyscall]
fatal error encountered in SBCL pid 24569 tid 24569:
remap_free_pages: page moved, 0x1000000000 ==> (nil)
我不知道从哪里开始调试/解决这个问题。我之前已经成功编译过,但由于这是不久前的事,我无法确切地说出发生了什么变化。 我尝试确保编译时后台没有其他进程占用内存。我也尝试卸载并重新安装 sbcl,但这并没有解决问题。
好的,通过将我的 sbcl 版本更新到 2.4.8 解决了这个问题