GEOTiff 文件上的 GDALOpen return 为空

GDALOpen return null on GEOTiff file

我正在尝试使用 gdal 打开 GEOTiff 图像 library。 我的代码:

GDALDatasetH hSrcDS = GDALOpen("/home/gamma/srtm_55_01.tif", GA_ReadOnly);
if (hSrcDS == nullptr)
    printf("failure");
else
    printf("success");

这是输出:

ERROR 4: `/home/gamma/srtm_55_01.tif' not recognized as a supported file format.
failure

我也试过使用相对路径,但也没用。

文件 "/home/gamma/srtm_55_01.tif" 存在并且是从 here (srtm_55_01 下载的。

我想也许我毕竟犯了一个错误。我查看了 sources gdal_contour,那里的代码完全相同。

此外,我尝试在我的文件上使用 gdal_contour - 一切都成功了。

gamma@gamma:~$ gdalinfo --version
GDAL 2.2.3, released 2017/11/20

尝试按照以下顺序打开光栅文件

  /* register all known GDAL drivers.
   * attempt to suppress GDAL warnings.
   */

  GDALAllRegister();
  CPLPushErrorHandler(CPLQuietErrorHandler);
 /* -------------------------------------------------------------------- */
 /*      Open source raster file.                                        */
 /* -------------------------------------------------------------------- */
    GDALDatasetH hSrcDS = GDALOpen(pszSrcFilename, GA_ReadOnly);
    if( hSrcDS == nullptr )
        exit( 2 );

    GDALRasterBandH hBand = GDALGetRasterBand( hSrcDS, nBandIn );
    if( hBand == nullptr )
    {
        CPLError( CE_Failure, CPLE_AppDefined,
                  "Band %d does not exist on dataset.",
                  nBandIn );
        exit(2);
    }

    if( !bNoDataSet && !bIgnoreNoData )
        dfNoData = GDALGetRasterNoDataValue( hBand, &bNoDataSet );