[GRASS-dev] compiling i.pr: error: ogr_api.h: No such file or directory

Moritz Lennert mlennert at club.worldonline.be
Wed Nov 28 03:48:03 EST 2007


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


More information about the grass-dev mailing list