2015-12-05 6 views
0

У меня есть следующие файлыASDF: составьте строить на ОС Windows не удается

example.asd:

(defsystem example 
    :serial t 
    :components ((:file "first") 
       (:file "second"))) 

first.lisp:

(defun first-print-hello() 
    (format t "Hello from first.lisp!~%")) 

second.lisp:

(format t "Hello from second.lisp!~%") 
(first-print-hello) 

Я могу успешно загрузить систему, но (asdf:make-build :example :type :program :move-here ".") дает следующее сообщение об ошибке:

LINK : fatal error LNK1149: output filename matches input filename 'C:\path\to\example.lib'

Есть ли что-то я не настраиваю правильно? Кажется, что создается example.lib, а затем пример example.exe example.lib, а cl не нравится, что они называются одинаковыми. Есть ли способ указать имя полученного исполняемого файла? Или это просто ошибка в asdf as: make-build?

Я использую ECL в Windows 10 с инструментами разработчика Visual Studio 2015.

ответ

0

Не используйте косметику сборку, используйте (ASDF: работать: программа-оп "пример"): въезд здесь

Или не использовать ""

+0

(asdf: operation: program-op "example") все еще компилирует .lib и пытается сделать исполняемый файл с тем же именем. Так что я все еще получаю ошибку LNK1149. Я просмотрел источник asdf: make-build, и он действительно выглядит так, как будто он устарел. Документы ECL необходимо обновить. Любые другие предложения? – jefftime

+0

Можете ли вы проследить uiop: запустить программу, чтобы увидеть, какая команда связи получает ошибку? –

+0

И можете ли вы также отслеживать выполнение, чтобы увидеть, какое действие терпит неудачу? –