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)
Change History (2)
by , 12 years ago
Attachment: | irc_discussion.txt added |
---|
comment:1 by , 12 years ago
Cc: | added |
---|---|
Resolution: | → invalid |
Status: | new → closed |
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.
Discussion on #liblas and #gdal related to this ticket.