Opened 17 years ago

Last modified 17 years ago

#1448 closed defect (invalid)

compiling gdal with postgresql support against the postgresql 8.1 development files included in windows binary postgres package fails

Reported by: dolf.andringa@… Owned by: warmerdam
Priority: highest Milestone:
Component: OGR_SF Version: 1.4.0
Severity: critical Keywords:
Cc:

Description

When I try to compile gdal 1.4.0 on windows with postgresql support, the compilation fails. Using the standard nmake.opt the compilation does not give any errors. When I set PG_INC_DIR = "C:\Program Files\PostgreSQL\8.1\include\libpq" and
PG_LIB = "C:\Program Files\PostgreSQL\8.1\lib\ms\libpq.lib" wsock32.lib 
I get the error that libpq-fe.h could not be found. I did install all development files of postgresql during installation. "C:\Program Files\PostgreSQL\8.1\include\libpq" does contain libpq-fs.h, but not libpq-fe.h. When I rename libpq-fs.h to libpq-fe.h I get syntax errors (see below).

For compilation I am using Microsoft Visual Studio 2005 and the Microsoft Platform SDK.

c:\documents and settings\dolf\bureaublad\gdal140\gdal-1.4.0\ogr\ogrsf_frmts\pg\ogr_pg.h(159) : error C2146: syntax error : missing ';' before identifier 'GeometryToOID'
c:\documents and settings\dolf\bureaublad\gdal140\gdal-1.4.0\ogr\ogrsf_frmts\pg\ogr_pg.h(159) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\documents and settings\dolf\bureaublad\gdal140\gdal-1.4.0\ogr\ogrsf_frmts\pg\ogr_pg.h(159) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\documents and settings\dolf\bureaublad\gdal140\gdal-1.4.0\ogr\ogrsf_frmts\pg\ogr_pg.h(159) : warning C4183: 'GeometryToOID': missing return type; assumed to be a member function returning 'int'
c:\documents and settings\dolf\bureaublad\gdal140\gdal-1.4.0\ogr\ogrsf_frmts\pg\ogr_pg.h(160) : error C2061: syntax error : identifier 'Oid'
c:\documents and settings\dolf\bureaublad\gdal140\gdal-1.4.0\ogr\ogrsf_frmts\pg\ogr_pg.h(167) : error C2143: syntax error : missing ';' before '*'
c:\documents and settings\dolf\bureaublad\gdal140\gdal-1.4.0\ogr\ogrsf_frmts\pg\ogr_pg.h(167) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\documents and settings\dolf\bureaublad\gdal140\gdal-1.4.0\ogr\ogrsf_frmts\pg\ogr_pg.h(167) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\documents and settings\dolf\bureaublad\gdal140\gdal-1.4.0\ogr\ogrsf_frmts\pg\ogr_pg.h(292) : error C2143: syntax error : missing ';' before '*'
c:\documents and settings\dolf\bureaublad\gdal140\gdal-1.4.0\ogr\ogrsf_frmts\pg\ogr_pg.h(292) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\documents and settings\dolf\bureaublad\gdal140\gdal-1.4.0\ogr\ogrsf_frmts\pg\ogr_pg.h(292) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\documents and settings\dolf\bureaublad\gdal140\gdal-1.4.0\ogr\ogrsf_frmts\pg\ogr_pg.h(297) : error C2143: syntax error : missing ')' before '*'
c:\documents and settings\dolf\bureaublad\gdal140\gdal-1.4.0\ogr\ogrsf_frmts\pg\ogr_pg.h(297) : error C2143: syntax error : missing ';' before '*'
c:\documents and settings\dolf\bureaublad\gdal140\gdal-1.4.0\ogr\ogrsf_frmts\pg\ogr_pg.h(297) : error C2460: 'OGRPGResultLayer::OGRPGDataSource' : uses 'OGRPGResultLayer', which is being defined
c:\documents and settings\dolf\bureaublad\gdal140\gdal-1.4.0\ogr\ogrsf_frmts\pg\ogr_pg.h(286) : see declarationof 'OGRPGResultLayer'
c:\documents and settings\dolf\bureaublad\gdal140\gdal-1.4.0\ogr\ogrsf_frmts\pg\ogr_pg.h(297) : error C2059: syntax error : ','
c:\documents and settings\dolf\bureaublad\gdal140\gdal-1.4.0\ogr\ogrsf_frmts\pg\ogr_pg.h(297) : error C2059: syntax error : ')'
c:\documents and settings\dolf\bureaublad\gdal140\gdal-1.4.0\ogr\ogrsf_frmts\pg\ogr_pg.h(297) : error C2238: unexpectedtoken(s) preceding ';'
c:\documents and settings\dolf\bureaublad\gdal140\gdal-1.4.0\ogr\ogrsf_frmts\pg\ogr_pg.h(333) : error C2143: syntax error : missing ';' before '*'
c:\documents and settings\dolf\bureaublad\gdal140\gdal-1.4.0\ogr\ogrsf_frmts\pg\ogr_pg.h(333) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\documents and settings\dolf\bureaublad\gdal140\gdal-1.4.0\ogr\ogrsf_frmts\pg\ogr_pg.h(333) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\documents and settings\dolf\bureaublad\gdal140\gdal-1.4.0\ogr\ogrsf_frmts\pg\ogr_pg.h(337) : error C2146: syntax error : missing ';' before identifier 'nGeometryOID'
c:\documents and settings\dolf\bureaublad\gdal140\gdal-1.4.0\ogr\ogrsf_frmts\pg\ogr_pg.h(337) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\documents and settings\dolf\bureaublad\gdal140\gdal-1.4.0\ogr\ogrsf_frmts\pg\ogr_pg.h(337) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\documents and settings\dolf\bureaublad\gdal140\gdal-1.4.0\ogr\ogrsf_frmts\pg\ogr_pg.h(356) : error C2143: syntax error : missing ';' before '*'
c:\documents and settings\dolf\bureaublad\gdal140\gdal-1.4.0\ogr\ogrsf_frmts\pg\ogr_pg.h(356) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\documents and settings\dolf\bureaublad\gdal140\gdal-1.4.0\ogr\ogrsf_frmts\pg\ogr_pg.h(356) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\documents and settings\dolf\bureaublad\gdal140\gdal-1.4.0\ogr\ogrsf_frmts\pg\ogr_pg.h(356) : warning C4183: 'GetPGConn': missing return type; assumed to be a member function returning 'int'
c:\documents and settings\dolf\bureaublad\gdal140\gdal-1.4.0\ogr\ogrsf_frmts\pg\ogr_pg.h(383) : error C2146: syntax error : missing ';' before identifier 'GetGeometryOID'
c:\documents and settings\dolf\bureaublad\gdal140\gdal-1.4.0\ogr\ogrsf_frmts\pg\ogr_pg.h(383) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\documents and settings\dolf\bureaublad\gdal140\gdal-1.4.0\ogr\ogrsf_frmts\pg\ogr_pg.h(383) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\documents and settings\dolf\bureaublad\gdal140\gdal-1.4.0\ogr\ogrsf_frmts\pg\ogr_pg.h(383) : warning C4183: 'GetGeometryOID': missing return type; assumed to be a member function returning 'int'
c:\documents and settings\dolf\bureaublad\gdal140\gdal-1.4.0\ogr\ogrsf_frmts\pg\ogr_pg.h(356) : error C2065: 'hPGConn' : undeclared identifier
c:\documents and settings\dolf\bureaublad\gdal140\gdal-1.4.0\ogr\ogrsf_frmts\pg\ogr_pg.h(383) : error C2065: 'nGeometryOID' : undeclared identifier

Change History (1)

comment:1 by dolf.andringa@…, 17 years ago

I made a mistake in the nmake.opt file. I couldn't find the libpq-fe.h but I wasn't looking thouroughly. Sorry. These are my nmake.opt lines:
PG_INC_DIR = "c:\Program Files\PostgreSQL\8.1\include"
PG_LIB = "c:\Program Files\PostgreSQL\8.1\lib\ms\libpq.lib" wsock32.lib
Note: See TracTickets for help on using tickets.