Я пытаюсь сделать статически компилировать и связать программу Chicken Scheme, и это одно яйцо дает мне некоторые проблемы. Я получаю ту же ошибку, но с дополнительной информацией, когда я пытаюсь ее в repl; так вот:Проблемы с сборкой куриного яйца «lookup-table»
> chicken-install >/dev/null -retrieve lookup-table
> csi ./lookup-table/lookup-table.scm -I ./lookup-table
CHICKEN
(c) 2008-2014, The Chicken Team
(c) 2000-2007, Felix L. Winkelmann
Version 4.9.0.1 (stability/4.9.0) (rev 8b3189b)
linux-unix-gnu-x86-64 [ 64bit manyargs dload ptables ]
bootstrapped 2014-06-07
; loading /tmp/tempfabd.10142/lookup-table/lookup-table.scm ...
; loading /var/lib//chicken/7/chicken.import.so ...
; including /tmp/tempfabd.10142/lookup-table/lookup-table-body.scm ...
; loading /var/lib//chicken/7/srfi-1.import.so ...
; loading /var/lib//chicken/7/srfi-69.import.so ...
; loading /var/lib//chicken/7/ports.import.so ...
; loading /var/lib//chicken/7/data-structures.import.so ...
; loading /var/lib//chicken/7/extras.import.so ...
; loading /var/lib//chicken/7/miscmacros.import.so ...
; loading /var/lib//chicken/7/type-checks.import.so ...
; loading /var/lib//chicken/7/type-errors.import.so ...
; loading /var/lib//chicken/7/foreign.import.so ...
; loading /var/lib//chicken/7/record-variants.import.so ...
; loading /var/lib//chicken/7/miscmacros.so ...
; loading /var/lib//chicken/7/record-variants.so ...
Warning: reference to possibly unbound identifier `MAGIC-LIMIT' in:
Warning: magic-count?
Error: module unresolved: lookup-table
Call history:
<syntax> [dict-print] (##core#let ((port (optional732 tmp735 #f))) (if (not port) (*dict-print dict) (with-output-to-port ......
<syntax> [dict-print] (##core#begin (##core#if (not port) (*dict-print dict) (with-output-to-port port (lambda() (*dict-p......
<syntax> [dict-print] (##core#if (not port) (*dict-print dict) (with-output-to-port port (lambda() (*dict-print dict))))
<syntax> [dict-print] (not port)
<syntax> [dict-print] (*dict-print dict)
<syntax> [dict-print] (with-output-to-port port (lambda() (*dict-print dict)))
<syntax> [dict-print] (lambda() (*dict-print dict))
<syntax> [dict-print] (##core#lambda() (*dict-print dict))
<syntax> [dict-print] (##core#begin (*dict-print dict))
<syntax> [dict-print] (*dict-print dict)
<syntax> [dict-print] (optional732 tmp735 #f)
<syntax> [dict-print] (##core#let ((tmp739 tmp735)) (##core#if (null?740 tmp739) #f (car741 tmp739)))
<syntax> [dict-print] (##core#begin (##core#if (null?740 tmp739) #f (car741 tmp739)))
<syntax> [dict-print] (##core#if (null?740 tmp739) #f (car741 tmp739))
<syntax> [dict-print] (null?740 tmp739)
<syntax> [dict-print] (car741 tmp739) <--
Все остальные яйца, которые я пробовал, составлены отлично. Может кто-нибудь поможет мне исправить эту проблему, пожалуйста? Это меня останавливает.
Мне нужно, чтобы он работал без фактического изменения источников. Возможно, если при компиляции я передаю 'opts' из lookup-table.setup в' csc'? Этого может быть достаточно. Почему они не могли просто определить «MAGIC-LIMIT» в проклятом источнике, я понятия не имею. –
Кажется, автор не касался этого яйца с 2009 года ... Почему вы не хотите менять источники, хотите ли вы автоматизировать процесс компиляции? – dercz
csc -unit lookup-table -emit-import-library lookup-table -prelude "\" (define-constant MAGIC-LIMIT 12) \ "" -cJ lookup-table.scm, похоже, работает ... – dercz