[Ecls-list] Error using make-build on Windows platform
Brian Jones
brianj at otterspace.com
Sat Dec 20 08:25:20 UTC 2008
I'm attempting to create a stand-alone EXE using (asdf:make-build) on a
Windows Xp Pro 64 platform with Visual C++ 8 team edition installed, using
the docs in http://ecls.sourceforge.net/new-manual/ch16s03.html.
Using slime, I get the output from the command that claims all works, but no
EXE file is created.
Using the command line raw, running in the ECL package directory, I get an
error on the CL call to do the final link that claims the output filename
matches the input filename <pathfoo>\build-test.lib.
The external command displayed in the NOTE output looks fine, however.
This generates an output file (with the right name) with a length of zero
bytes.
I built a tiny example, an asdf loadable package with a single function
detailed below with source and output from both slime and the cmd.exe run.
This is the same failure we're hitting in a larger real system with many
packages loaded with asdf (and dependencies). This shows the identical error
fortunately.
Is there something I'm missing or doing wrong, or any easy work-around?
Thank You!
Brian Jones (Otter)
ASD file build-test.asd:
(in-package #:cl-user)
(defpackage #:build-test-asd
(:use :common-lisp :asdf ))
(in-package #:build-test-asd)
(defsystem build-test
:name "build-test"
:version "1.0"
:maintainer "brianj at otterspace.com"
:author "Brian Jones"
:licence "unrestricted"
:description "Make an executable"
:serial t
:components ((:static-file "build-test.asd")
(:file "package")
(:file "go")))
*******
package.lisp:
(cl:defpackage #:build-test
(:use :common-lisp))
*******
go.lisp:
(in-package :build-test)
(defun entry ()
(format t "Hello, world!~%"))
(export 'entry)
****************
Then I ran the following lines (in the repl in slime and via "-load
make-exe.lisp" which held them at the command line):
(asdf:operate 'asdf:load-op :build-test)
(asdf:make-build :build-test :type :program :epilogue-code '(progn
(build-test:entry) (ext:quit 0)))
********
The result in SLIME was:
CL-USER> (asdf:make-build :build-test :type :program :epilogue-code '(progn
(build-test:entry) (ext:quit 0)))
;;; Note: Scanning #P"e:/build-test/go.obj"
;;; Note: Found tag: "_eclC0VAy4n7_jgbzXXy"
;;; Note: Scanning #P"e:/build-test/package.obj"
;;; Note: Found tag: "_eclk5Pv83m7_dUbzXXy"
;;; Note: Invoking external command:
;;; cl /MD /EHsc /DGC_DLL /nologo -DECL_THREADS -O2
-I"e:/ecl-0.9l/msvc/package/" -w -c "e:/temp/brianj/ECLC31.c"
-Fo"e:/temp/brianj/ECLC31.obj"
;;; Note: Invoking external command:
;;; link -lib @static_lib.tmp
;;; Note: Invoking external command:
;;; cl /MD /EHsc /DGC_DLL /nologo -DECL_THREADS -O2
-I"e:/ecl-0.9l/msvc/package/" -w -c "e:/temp/brianj/ECLC32.c"
-Fo"e:/temp/brianj/ECLC32.obj"
;;; Note: Invoking external command:
;;; cl -Fe"e:/build-test/build-test.exe" "e:/temp/brianj/ECLC32.obj"
"e:/build-test/build-test.lib" /MD /link /nologo /nodefaultlib:libcmt
/nodefaultlib:libcmtd /nodefaultlib:libc /nodefaultlib:libd ecl.lib
user32.lib ws2_32.lib shell32.lib
NIL
No errors or warnings, but no EXE created, either.
The output from the command-line run:
;;; Note: Invoking external command:
;;; cl -Fe"E:/cvs/grindwork/gwc/lisp/build-test/build-test.exe"
"E:/temp/brianj/ECLC3E.obj" "E:/build-test/build-test.lib" /MD /link
/nologo /nodefaultlib:libcmt /nodefaultlib:libcmtd /nodefaultlib:libc
/nodefaultlib:libd ecl.lib user32.lib ws2_32.lib shell32.lib
LINK : fatal error LNK1149: output filename matches input filename
'E:\build-test\build-test.lib'
ECL (Embeddable Common-Lisp) 0.9i (CVS 2008-06-19 17:09)
Copyright (C) 1984 Taiichi Yuasa and Masami Hagiya
Copyright (C) 1993 Giuseppe Attardi
Copyright (C) 2000 Juan J. Garcia-Ripoll
ECL is free software, and you are welcome to redistribute it
under certain conditions; see file 'Copyright' for details.
Type :h for Help. Top level.
(NOTE: I tried to re-assemble the long line instead of the CMD.EXE chop and
I separated out the link error for clarity)
This one created an EXE (of the right name, in the right place) of zero
bytes.
More information about the ecl-devel
mailing list