[GRASS5] nviz compilation with PG support?

Glynn Clements glynn.clements at virgin.net
Mon Aug 26 19:51:29 EDT 2002


Markus Neteler wrote:

> to extend the build script to separately compile
> NVIZ with PGSQL support, I am currently trying
> to compile that. But I get a strange error:
> 
> gmake5 src.contrib/GMSL/NVIZ2.2
> [...]
> #################################################################
> /hardmnt/thuille1/ssi/cvsgrass_exp/src.contrib/GMSL/NVIZ2.2
>   make -f OBJ.i686-pc-linux-gnu/make.rules
> 
> *** PostgreSQL supported ***
> [...]
> 
> make[1]: Entering directory `/hardmnt/thuille1/ssi/cvsgrass_exp/src.contrib/GMSL/NVIZ2.2/src'
> gcc -L/hardmnt/thuille1/ssi/cvsgrass_exp/src/libes/LIB.i686-pc-linux-gnu  -o nvwish OBJ.i686-pc-linux-gnu/nvizAppInit.o OBJ.i686-pc-linux-gnu/change_view.o OBJ.i686-pc-linux-gnu/draw.o OBJ.i686-pc-linux-gnu/exag.o OBJ.i686-pc-linux-gnu/glwrappers.o OBJ.i686-pc-linux-gnu/init_commands.o OBJ.i686-pc-linux-gnu/lights.o OBJ.i686-pc-linux-gnu/map_obj.o OBJ.i686-pc-linux-gnu/misc.o OBJ.i686-pc-linux-gnu/nviz_init.o OBJ.i686-pc-linux-gnu/position.o OBJ.i686-pc-linux-gnu/quick_draw.o OBJ.i686-pc-linux-gnu/anim_support.o OBJ.i686-pc-linux-gnu/cutplane_obj.o OBJ.i686-pc-linux-gnu/script_support.o OBJ.i686-pc-linux-gnu/do_zoom.o OBJ.i686-pc-linux-gnu/label.o OBJ.i686-pc-linux-gnu/nvizMain.o OBJ.i686-pc-linux-gnu/togl.o OBJ.i686-pc-linux-gnu/togl_cb.o OBJ.i686-pc-linux-gnu/query_postgr.o OBJ.i686-pc-linux-gnu/openvect.o OBJ.i686-pc-linux-gnu/getCat.o OBJ.i686-pc-linux-gnu/buildInfxQry.o OBJ.i686-pc-linux-gnu/runInfxQry.o /hardmnt/thuille1/ssi/cvsgrass_exp/src/libes/ogsf/LIB.i686-pc-linu!
> x-gnu/libgsf.a /hardmnt/thuille1/ssi/cvsgrass_exp/src/libes/libimage/LIB.i686-pc-linux-gnu/libimage.a \
> -lbitmap -llinkm -lvect -ldig2 \
> -lgis -lm  -lz   \
> -ldatetime  -L/usr/lib -ltk -lm  -ltcl -lm -lGLU  -lGL   -lSM -lICE -lX11 -lXmu
> -lXext -lm  -ldl -lz    -L/usr/X11R6/lib  -lpq   -ltiff -lm -lSM -lICE -lX11
> OBJ.i686-pc-linux-gnu/query_postgr.o: In function `query_postgr':
> OBJ.i686-pc-linux-gnu/query_postgr.o(.text+0x105): undefined reference to `runInfxQry'
> OBJ.i686-pc-linux-gnu/query_postgr.o: In function `query_pg_site':
> OBJ.i686-pc-linux-gnu/query_postgr.o(.text+0x1ff): undefined reference to `runqry'
> collect2: ld returned 1 exit status
> make[1]: *** [nvwish] Error 1
> 
> Some checks:
> *  -lpq is present above
> *  src/include/config.h -> PG is defined.
> *  gmake5 src.garden/grass.postgresql/d.rast.pg  -> compiles, runInfxQry is
>                                                     also used here
> 
> Any hints for me?

You need to use "make clean".

GRASS doesn't have accurate dependency information; if you change any
header files or build files (Gmakefiles or src/CMD/generic/*), you
have to manually ensure that anything which needs to be rebuilt does
get rebuilt.

In this case, both of those functions are defined in runInfxQry.c;
however, the whole of that file is conditional upon:

#if defined(HAVE_POSTGRES_H) || defined(HAVE_POSTGRES_FE_H)

Consequently, your runInfxQry.o (from the previous compilation) will
be empty.

-- 
Glynn Clements <glynn.clements at virgin.net>




More information about the grass-dev mailing list