On 28/11/07 00:39, Glynn Clements wrote:
Moritz Lennert wrote:

Trying to compile i.pr from the GRASS Add-Ons, I get the following error:

*************
make[1]: Entering directory `/home/mlennert/SRC/GRASS/i.pr/i.pr_sites_aggregate' gcc -I/home/mlennert/SRC/GRASS/grass6/dist.i486-pc-linux-gnu/include -Wall -g -O2 -I../include/ -DPACKAGE=\""grassmods"\" -I/home/mlennert/SRC/GRASS/grass6/dist.i486-pc-linux-gnu/include -o OBJ.i486-pc-linux-gnu/main.o -c main.c In file included from /home/mlennert/SRC/GRASS/grass6/dist.i486-pc-linux-gnu/include/grass/vect/digit.h:3, from /home/mlennert/SRC/GRASS/grass6/dist.i486-pc-linux-gnu/include/grass/Vect.h:4,
                  from main.c:6:
/home/mlennert/SRC/GRASS/grass6/dist.i486-pc-linux-gnu/include/grass/vect/dig_structs.h:22:21: error: ogr_api.h: No such file or directory In file included from /home/mlennert/SRC/GRASS/grass6/dist.i486-pc-linux-gnu/include/grass/vect/digit.h:3, from /home/mlennert/SRC/GRASS/grass6/dist.i486-pc-linux-gnu/include/grass/Vect.h:4,
                  from main.c:6:
/home/mlennert/SRC/GRASS/grass6/dist.i486-pc-linux-gnu/include/grass/vect/dig_structs.h:170: error: expected specifier-qualifier-list before 'OGRDataSourceH'
main.c: In function 'main':
main.c:90: warning: value computed is not used
main.c:93: warning: value computed is not used
make[1]: *** [OBJ.i486-pc-linux-gnu/main.o] Error 1
make[1]: Leaving directory `/home/mlennert/SRC/GRASS/i.pr/i.pr_sites_aggregate'
**************

'locate ogr_api.h' gives:
/usr/include/gdal/ogr_api.h

The relevant lines in include/grass/vect/dig_structs.h are

#ifdef HAVE_OGR
#include "ogr_api.h"
#endif

When I change this to

#include "gdal/ogr_api.h"

it compiles correctly.

Strange. Does ogr_api.h use the "gdal/" prefix in headers which it
includes?

No

What does "gdal-config --cflags" say?

$ gdal-config --cflags
-I/usr/include/gdal


Is this a bug in grass,

I think that it's a bug in i.pr.

i.e. should this be gdal/ogr_api.h in the headers file ?

No; "gdal" is not part of the header name, at least not in the version
I have (1.3.1). Headers don't use that to refer to themselves.

Modules which include vector headers need to have:

        EXTRA_CFLAGS = $(VECT_CFLAGS)

in their Makefile. i.pr would appear to have omitted this.

Yes, that was it. Thanks.

Moritz
_______________________________________________
grass-dev mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/grass-dev

Reply via email to