Как правильно скомпилировать файл с помощью Embeddable Common Lisp? - PullRequest
6 голосов
/ 10 марта 2019

Я пытался использовать ECL для создания файла .o с намерением использовать его функцию компиляции в C, однако я получаю сообщение об ошибке при попытке собрать программу в виде списков документации.

Я бегу:

(c:build-program "CompiledFile" "hello.lisp")

При получении ошибки:

Debugger received error of type: SIMPLE-ERROR
Cannot find the external symbol BUILD-PROGRAM in #<"C" package>.
Error flushed.
>> "CompiledFile"
>> "hello.lisp"
>> ;;; Warning: Ignoring an unmatched right parenthesis.

Содержимое hello.lisp:

(defun say-hello ()
  (print "Hello, world"))

(say-hello)
(terpri)
(quit)

Я слежу за документацией, найденной здесь https://common -lisp.net / project / ecl / static / manual / ch34s03.html и имеет определение функции как:

c:build-program {image-name &key lisp-files ld-flags prologue-code epilogue-code}

1 Ответ

5 голосов
/ 10 марта 2019

Согласно https://ecls -list.narkive.com / xACoJUbf / c-build-program-and-eval компилятор не загружен по умолчанию, вам необходимо использовать

(require 'cmp)

сначала.

Я не уверен, почему это не упоминается в руководстве.

...