Opened 13 years ago

Last modified 13 years ago

#1347 closed defect (fixed)

Current CVS doesn't build using ECW support with GCC 4.1

Reported by: luca.casagrande@… Owned by: Mateusz Łoskot
Priority: highest Milestone:
Component: GDAL_Raster Version: unspecified
Severity: normal Keywords:


Hi to all!
I am trying to build current CVS, using GCC-4.1.1 and enabling ECW support for ECW-3.3

This is the configure summary:

GDAL is now configured for i686-pc-linux-gnu

  Installation directory:    /usr/local
  C compiler:                gcc -O2 
  C++ compiler:              g++ -O2 

  LIBTOOL support:           yes

  LIBZ support:              external
  GRASS support:             no
  CFITSIO support:           no
  PCRaster support:          internal
  NETCDF support:            yes
  LIBPNG support:            external
  LIBTIFF support:           external
  LIBGEOTIFF support:        external
  LIBJPEG support:           external
  LIBGIF support:            external
  OGDI support:              no
  HDF4 support:              yes
  HDF5 support:              yes
  KAKADU support:            no
  JASPER support:            yes (GeoJP2=no)
  ECW support:               yes
  MrSID support:             no
  CURL support (wcs):        yes
  POSTGRESQL support:        yes
  MySQL support:             no
  XERCES support:            no
  ODBC support:              yes
  PGEO support:              yes
  OCI support:               no
  SDE support:               no
  DODS support:              no
  SQLite support:            no
  DWGdirect support          no
  PANORAMA GIS support:      no
  GEOS support:              yes

  Statically link PROJ.4:    no

  Traditional Python:        yes
  NG SWIG Bindings:          

  enable OGR building:       yes

This is the error with make:

make[2]: Entering directory `/usr/src/gdal-cvs-2006.11.05/frmts/ecw'
/bin/sh /usr/src/gdal-cvs-2006.11.05/libtool --mode=compile g++ -Wall  -O2   -I/usr/src/gdal-cvs-2006.11.05/port -I/usr/src/gdal-cvs-2006.11.05/gcore -I/usr/src/gdal-cvs-2006.11.05/alg -I/usr/src/gdal-cvs-2006.11.05/ogr -I/usr/src/gdal-cvs-2006.11.05/ogr/ogrsf_frmts -DFRMT_ecw -DOGR_ENABLED -I/usr/src/gdal-cvs-2006.11.05/port  -c -o ../o/ecwdataset.o ecwdataset.cpp
 g++ -Wall -O2 -I/usr/src/gdal-cvs-2006.11.05/port -I/usr/src/gdal-cvs-2006.11.05/gcore -I/usr/src/gdal-cvs-2006.11.05/alg -I/usr/src/gdal-cvs-2006.11.05/ogr -I/usr/src/gdal-cvs-2006.11.05/ogr/ogrsf_frmts -DFRMT_ecw -DOGR_ENABLED -I/usr/src/gdal-cvs-2006.11.05/port -c ecwdataset.cpp  -fPIC -DPIC -o ../o/.libs/ecwdataset.o
/usr/local/include/NCSJPCBuffer.h:178: error: extra qualification 'CNCSJPCBuffer::' on member 'CNCSJPCBuffer'
/usr/local/include/NCSJPCBuffer.h:191: error: extra qualification 'CNCSJPCBuffer::' on member 'operator='
/usr/local/include/NCSJPCMarker.h:101: error: extra qualification 'CNCSJPCMarker::' on member 'operator='
/usr/local/include/NCSJPCPLTMarker.h:84: error: extra qualification 'CNCSJPCPLTMarker::' on member 'operator='
ecwdataset.cpp: In member function 'virtual CPLErr ECWRasterBand::IRasterIO(GDALRWFlag, int, int, int, int, void*, int, int, GDALDataType, int, int)':
ecwdataset.cpp:554: warning: dereferencing type-punned pointer will break strict-aliasing rules
make[2]: *** [../o/ecwdataset.o] Error 1
make[2]: Leaving directory `/usr/src/gdal-cvs-2006.11.05/frmts/ecw'
make[1]: *** [ecw-install-obj] Error 2
make[1]: Leaving directory `/usr/src/gdal-cvs-2006.11.05/frmts'
make: *** [frmts-target] Error 2

Thanks for your help

Change History (4)

comment:1 Changed 13 years ago by Mateusz Łoskot

I'm taking this bug after longer talk with Luca on the #gdal channel.

comment:2 Changed 13 years ago by Mateusz Łoskot

Summary from chat with Luca:

1. Luca uses libecwj2-3.3 but installed form Gentoo packages
2. I use the same version but compiled and installed manually
3. We've revealed that there is problem with files from Gentoo. Comparison of header NCSJPCBuffer.h file (ECW SDK version 3.3) on Luca's and mine installation gives different results:

a) Luca's file: NCSJPCBuffer.h:178

CNCSJPCBuffer::CNCSJPCBuffer( const class CNCSJPCBuffer& src )

b) Mateusz's file NCSJPCBuffer.h:178

CNCSJPCBuffer( const class CNCSJPCBuffer& src );

So, it seems ECW 3.3 from Gentoo has some problems - old files.

I'm going to leave this report open and wait for new notes from Luca.

comment:3 Changed 13 years ago by Mateusz Łoskot

(In reply to comment #2)
> Summary from chat with Luca:

Additional note, GDAL (current CVS) builds on my Ubuntu 6.06 using GCC 4.0.3 and with success.

comment:4 Changed 13 years ago by Mateusz Łoskot

After recent Luca's note, I close this bug as fixed, but in fact NOT A BUG in GDAL, but problem with Gentoo packages of ECW SDK.
Note: See TracTickets for help on using tickets.