Opened 12 years ago

Closed 12 years ago

#4374 closed defect (invalid)

Error related to cpl_vsi.h and cpl_serv.h while compiling PDAL

Reported by: cgsbob Owned by: warmerdam
Priority: normal Milestone:
Component: default Version: unspecified
Severity: normal Keywords:
Cc: hobu

Description

I've successfully compiled PDAL without enabling GEOTIFF and GDAL. When I enable GEOTIFF and GDAL, I get the error message:

bob@bob-G73Jw ~/dev/gis/PDAL/build2 $ make
/usr/bin/cmake -H/home/bob/dev/gis/PDAL -B/home/bob/dev/gis/PDAL/build2 --check-build-system CMakeFiles/Makefile.cmake 0
/usr/bin/cmake -E cmake_progress_start /home/bob/dev/gis/PDAL/build2/CMakeFiles /home/bob/dev/gis/PDAL/build2/CMakeFiles/progress.marks
make -f CMakeFiles/Makefile2 all
make[1]: Entering directory `/home/bob/dev/gis/PDAL/build2'
make -f src/CMakeFiles/pdal.dir/build.make src/CMakeFiles/pdal.dir/depend
make[2]: Entering directory `/home/bob/dev/gis/PDAL/build2'
cd /home/bob/dev/gis/PDAL/build2 && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/bob/dev/gis/PDAL /home/bob/dev/gis/PDAL/src /home/bob/dev/gis/PDAL/build2 /home/bob/dev/gis/PDAL/build2/src /home/bob/dev/gis/PDAL/build2/src/CMakeFiles/pdal.dir/DependInfo.cmake --color=
make[2]: Leaving directory `/home/bob/dev/gis/PDAL/build2'
make -f src/CMakeFiles/pdal.dir/build.make src/CMakeFiles/pdal.dir/build
make[2]: Entering directory `/home/bob/dev/gis/PDAL/build2'
/usr/bin/cmake -E cmake_progress_report /home/bob/dev/gis/PDAL/build2/CMakeFiles 37
[  1%] Building CXX object src/CMakeFiles/pdal.dir/drivers/las/GeotiffSupport.cpp.o
cd /home/bob/dev/gis/PDAL/build2/src && /usr/bin/c++   -Dpdal_EXPORTS -pedantic -Wall -Wpointer-arith -Wcast-align -Wcast-qual -Wfloat-equal -Wredundant-decls -Wno-long-long -std=c++98 -ansi  -g -fPIC -I/home/bob/dev/gis/PDAL/src/../include -I/usr/local/include   -o CMakeFiles/pdal.dir/drivers/las/GeotiffSupport.cpp.o -c /home/bob/dev/gis/PDAL/src/drivers/las/GeotiffSupport.cpp
In file included from /usr/local/include/cpl_conv.h:35:0,
                 from /home/bob/dev/gis/PDAL/src/drivers/las/GeotiffSupport.hpp:42,
                 from /home/bob/dev/gis/PDAL/src/drivers/las/GeotiffSupport.cpp:35:
/usr/local/include/cpl_vsi.h:97:33: error: declaration of ‘int feof(FILE*)’ throws different exceptions
/usr/include/stdio.h:821:12: error: from previous declaration ‘int feof(FILE*) throw ()’
/usr/local/include/cpl_vsi.h:172:37: error: declaration of C function ‘void* _GTIFcalloc(size_t)’ conflicts with
/usr/local/include/cpl_vsi.h:171:17: error: previous declaration ‘void* _GTIFcalloc(size_t*)’ here
In file included from /usr/local/include/cpl_conv.h:36:0,
                 from /home/bob/dev/gis/PDAL/src/drivers/las/GeotiffSupport.hpp:42,
                 from /home/bob/dev/gis/PDAL/src/drivers/las/GeotiffSupport.cpp:35:
/usr/local/include/cpl_error.h:50:15: error: conflicting declaration ‘CE_None’
/usr/local/include/cpl_serv.h:168:15: error: ‘CE_None’ has a previous declaration as ‘CPLErr CE_None’
/usr/local/include/cpl_error.h:52:18: error: conflicting declaration ‘CE_Warning’
/usr/local/include/cpl_serv.h:170:18: error: ‘CE_Warning’ has a previous declaration as ‘CPLErr CE_Warning’
/usr/local/include/cpl_error.h:53:18: error: conflicting declaration ‘CE_Failure’
/usr/local/include/cpl_serv.h:171:18: error: ‘CE_Failure’ has a previous declaration as ‘CPLErr CE_Failure’
/usr/local/include/cpl_error.h:54:16: error: conflicting declaration ‘CE_Fatal’
/usr/local/include/cpl_serv.h:172:16: error: ‘CE_Fatal’ has a previous declaration as ‘CPLErr CE_Fatal’
/usr/local/include/cpl_error.h:55:3: error: conflicting declaration ‘typedef enum CPLErr CPLErr’
/usr/local/include/cpl_serv.h:173:3: error: ‘CPLErr’ has a previous declaration as ‘typedef enum CPLErr CPLErr’
/usr/local/include/cpl_error.h:73:71: error: declaration of C function ‘void (* gtCPLSetErrorHandler(void (*)(CPLErr, int, const char*)))(CPLErr, int, const char*)’ conflicts with
/usr/local/include/cpl_serv.h:186:14: error: previous declaration ‘void gtCPLSetErrorHandler(void (*)(CPLErr, int, const char*))’ here
In file included from /home/bob/dev/gis/PDAL/src/drivers/las/GeotiffSupport.hpp:42:0,
                 from /home/bob/dev/gis/PDAL/src/drivers/las/GeotiffSupport.cpp:35:
/usr/local/include/cpl_conv.h:63:35: error: declaration of C function ‘void* gtCPLMalloc(size_t)’ conflicts with
/usr/local/include/cpl_serv.h:147:15: error: previous declaration ‘void* gtCPLMalloc(int)’ here
/usr/local/include/cpl_conv.h:64:43: error: declaration of C function ‘void* gtCPLCalloc(size_t, size_t)’ conflicts with
/usr/local/include/cpl_serv.h:148:15: error: previous declaration ‘void* gtCPLCalloc(int, int)’ here
/usr/local/include/cpl_conv.h:65:44: error: declaration of C function ‘void* gtCPLRealloc(void*, size_t)’ conflicts with
/usr/local/include/cpl_serv.h:149:15: error: previous declaration ‘void* gtCPLRealloc(void*, int)’ here
make[2]: *** [src/CMakeFiles/pdal.dir/drivers/las/GeotiffSupport.cpp.o] Error 1
make[2]: Leaving directory `/home/bob/dev/gis/PDAL/build2'
make[1]: *** [src/CMakeFiles/pdal.dir/all] Error 2
make[1]: Leaving directory `/home/bob/dev/gis/PDAL/build2'
make: *** [all] Error 2

Attachments (1)

irc_discussion.txt (6.9 KB ) - added by cgsbob 12 years ago.
Discussion on #liblas and #gdal related to this ticket.

Download all attachments as: .zip

Change History (2)

by cgsbob, 12 years ago

Attachment: irc_discussion.txt added

Discussion on #liblas and #gdal related to this ticket.

comment:1 by Even Rouault, 12 years ago

Cc: hobu added
Resolution: invalid
Status: newclosed

I maintain that I don't think it is a GDAL bug, but more a bad interaction between libgeotiff cpl_serv.h header, that #define VSIFEof feof, which overides the "int CPL_DLL VSIFEof()" declaration of GDAL's cpl_vsi.h

But what I don't understand is "how come PDAL include cpl_serv.h" ? I add a look at https://github.com/PDAL/PDAL/blob/master/src/drivers/las/GeotiffSupport.cpp and https://github.com/PDAL/PDAL/blob/master/src/drivers/las/GeotiffSupport.hpp and didn't any sign of it including it. I have looked quickly at libgeotiff headers (latest svn head), and apparently the only way of including cpl_serv.h is to include it directly, or indirectly by geo_tiffp.h. And no headers of libgeotiff include geo_tiffp.h...

So I'm tempted to close this as "invalid" for GDAL, unless it is more characterized by the PDAL team.

Note: See TracTickets for help on using tickets.