[Ecls-list] Compilation Error With Compiler-Generated Header and C++
Keith Sutton
kesutt at gmail.com
Fri Feb 20 05:02:32 UTC 2009
g++ gives an error when compiling ecl-compiler-generated files.
foo.h:25: error: uninitialized const 'compiler_cfuns'
foo.c:14: error: redefinition of 'const ecl_cfun compiler_cfuns []'
foo.h:25: error: 'const ecl_cfun compiler_cfuns [1]' previously declared here
In C the compiler_cfuns[] in the header is simply a forward
declaration, but in C++ it counts as a definition without an
initializer which is an error. It compiles in both C and C++ if the
declaration/definiton of compiler_cfuns is left out of the header.
Mac OS 10.5.6
ECL 8.12.0
g++ 4.0.1
Minimal example:
foo.lisp:
(defun foo () "foo")
Then do the following in ecl:
(require 'cmp)
(setq compiler:*cc* "g++")
(compile-file "foo.lisp" :system-p t :c-file t :h-file t :data-file t)
--
Keith Sutton
More information about the ecl-devel
mailing list