[GRASS5] [bug #1382] (grass) r.mapcalc3 compilation error
Glynn Clements
glynn.clements at virgin.net
Sat Oct 26 15:46:22 EDT 2002
Request Tracker wrote:
> Subject: r.mapcalc3 compilation error
>
> Platform: GNU/Linux/i386
> grass obtained from: CVS
> grass binary for platform: Compiled from Sources
>
> Hi,
>
> I compiled the today's CVS HEAD (using the new makefile system from
> mk/ directory), but got an error in r.mapcalc:
>
> make[1]: Entering directory `/home/neteler/ggg/src/raster/r.mapcalc3'
> gcc -L/home/neteler/ggg/src/libes -Wl,-rpath-link,/home/neteler/ggg/src/libes -o /home/neteler/ggg/dist.i686-pc-linux-gnu/etc/bin/cmd/r.mapcalc /home/neteler/ggg/src/raster/r.mapcalc3/y.tab.o /home/neteler/ggg/src/raster/r.mapcalc3/lex.yy.o
> [...]
> /home/neteler/ggg/src/raster/r.mapcalc3/xsqrt.o /home/neteler/ggg/src/raster/r.mapcalc3/xsub.o /home/neteler/ggg/src/raster/r.mapcalc3/xtan.o -lgrass_gis -lgrass_btree -lgrass_rowio -lreadline -lhistory -lm -lz
> /home/neteler/ggg/src/raster/r.mapcalc3/expression.o: In function `function':
> /home/neteler/ggg/src/raster/r.mapcalc3/expression.o(.text+0x2a3): undefined reference to `syntax_error'
> /home/neteler/ggg/src/raster/r.mapcalc3/expression.o: In function `variable':
> /home/neteler/ggg/src/raster/r.mapcalc3/expression.o(.text+0x748): undefined reference to `syntax_error'
> /home/neteler/ggg/src/raster/r.mapcalc3/expression.o: In function `mapname':
> /home/neteler/ggg/src/raster/r.mapcalc3/expression.o(.text+0x7e6): undefined reference to `syntax_error'
> collect2: ld returned 1 exit status
> make[1]: *** [/home/neteler/ggg/dist.i686-pc-linux-gnu/etc/bin/cmd/r.mapcalc] Error 1
> make[1]: Leaving directory `/home/neteler/ggg/src/raster/r.mapcalc3'
It appears that you are trying to build from within the source
directory; I have no idea whether that works.
> I am using
> CC = gcc
> FC = g77
> LEX = flex
> YACC = bison -y
> PERL = /usr/bin/perl
> MAKE = make
>
> It seems to be a problem with yacc/bison, which does not generate
> `syntax_error' from the mapcalc.y file. Unfortunaltely I have no
> idea how to solve this.
What does the bison command look like?
Was the build performed from clean, or were there old files lying
around? Note that:
1. For the "normal" build mechanism, you have to use
"make maintainer-clean" to remove the files which are generated by
lex/yacc; "make distclean" won't work (presumably, the idea is that
source tarballs include the generated C files, so that users don't
need lex/yacc).
2. For the new build mechanism, the "make clean" rule is bogus. It is
designed for use with a separate build directory, so you don't need
"make clean"; just "rm -rf" the entire build directory once you're
finished with it (obviously, you don't do this if the build directory
happens to be the source directory).
--
Glynn Clements <glynn.clements at virgin.net>
More information about the grass-dev
mailing list