GDALDriver::Create GTiff Segmentation Fault



我是使用GDAL的新手,并且在使用GDALDriver::Create()方法创建GDALDataset时遇到问题。在这种情况下,我正在使用C++。最终,我正在尝试创建一个栅格并将值从数组写入栅格。这里给出了生成创建数据集问题的代码的最小工作示例:

#include <iostream>
#include </usr/include/gdal/gdal_priv.h>
int main(){
  std::cout << "starting GDAL businessn";
  const char *raster_format = "GTiff"; 
  GDALDriver *g_driver; 
  g_driver = GetGDALDriverManager()->GetDriverByName(raster_format);
  GDALDataset *g_dataset;
  const char *test_file = "test_file.tif";
  char **raster_creation_options = NULL;
  std::cout << "raster options createdn";
  g_dataset = g_driver->Create(test_file,
                               100,200,1,GDT_Float32,
                               raster_creation_options); //<--- seg faults
  std::cout << "dataset createdn";
}

生成的控制台如下所示:

starting GDAL business
raster options created
Segmentation fault (core dumped)

我只是按照基本的 API 教程(链接)进行操作,但遇到了这个问题。我在 Ubuntu 14.04 上,使用存储库的 libgdal 包。

谁能阐明这个问题?

我知道这是一个老问题,这个问题可能早就解决了,但我想我会把我的答案扔进戒指里。 毕竟,当我遇到这个问题时,我被引导到这里,似乎这个问题有相当多的观点。

如果您的代码不起作用,并且您在加载驱动程序时遇到问题,我建议您添加行GDALAllRegister(); . 我和你遵循了相同的教程,他们提到在教程的顶部添加这一行,但如果你像我一样,直接冲到你需要的部分,教程的创建部分,你可能忽略了这一步。

希望这个答案对某人有所帮助,如果不是问题的原始作者。

相关内容

  • 没有找到相关文章

最新更新