[Ubuntu] cpp and python codes not able to access gdal library
Even Rouault
even.rouault at spatialys.com
Thu Sep 8 00:51:12 PDT 2016
Alassane,
> I developed a gdal code on my local machine and it worked. Having gdal and
> g++ working on the server my compilation of the same code resulted in the
> following response...
>
> gcc -o applymask applymask.cpp -I /usr/include/gdal -lgdal -lm
> applymask.cpp: In function âint main(int, char**)â:
> applymask.cpp:63:95: warning: ignoring return value of âCPLErr
> GDALRasterBand::RasterIO(GDALRWFlag, int, int, int, int, void*, int, int,
> GDALDataType, GSpacing, GSpacing, GDALRasterIOExtraArg*)â, declared with
> attribute warn_unused_result [-Wunused-result]
> Band->RasterIO( GF_Read, 0, iLine,nXSize, 1, inScanline, nXSize,
> 1, GDT_Float32,0, 0 );
>
> ^
> applymask.cpp:64:101: warning: ignoring return value of âCPLErr
> GDALRasterBand::RasterIO(GDALRWFlag, int, int, int, int, void*, int, int,
> GDALDataType, GSpacing, GSpacing, GDALRasterIOExtraArg*)â, declared with
> attribute warn_unused_result [-Wunused-result]
> maskBand->RasterIO( GF_Read, 0, iLine,nXSize, 1, maskScanline,
> nXSize, 1, GDT_Float32,0, 0 );
>
> ^
> applymask.cpp:75:94: warning: ignoring return value of âCPLErr
> GDALRasterBand::RasterIO(GDALRWFlag, int, int, int, int, void*, int, int,
> GDALDataType, GSpacing, GSpacing, GDALRasterIOExtraArg*)â, declared with
> attribute warn_unused_result [-Wunused-result]
> outBand->RasterIO( GF_Write, 0, iLine,nXSize, 1, outScanline, nXSize, 1,
> GDT_Float32,0, 0 );
>
The warning says it all. You use GDALRasterBand::RasterIO() but do not check
the return value. You probably don't get it on your local machine since it
might use an older version of GDAL where this method wasn't tagged with the
warn_unused_result attribute.
The right fix is to check the return value and do something appropriate. Or you
can silence the warning by enclosing the calls in CPL_IGNORE_RET_VAL(...)
>
> Also, my python code does not import all refered libraries including gdal.
>
> File "/usr/local/bin/CD4DEM.py", line 12, in <module>
> import gdalImportError: No module named gdal
Did you install the python-gdal package ?
Even
--
Spatialys - Geospatial professional services
http://www.spatialys.com
More information about the Ubuntu
mailing list