开发环境:Qt 5.6.1 + MSVC 2013,64 bit
1、需要的文件
- Qt 5.6.1 MSVC2013 64bit (qt-opensource-windows-x86-msvc2013_64-5.6.1-1.exe)
- GDAL(MSVC2013 64bit )http://www.gisinternals.com/sdk.php
2、配置步骤
(1) 新建Qt控制台项目
(2) 右键项目–>添加库。打开下图:
选择“外部库”,下一步:
最后完成,打开.pro项目配置文件,会自动添加以下内容:
win32: LIBS += -L$$PWD/F:/GDAL-Qt/lib/ -lgdal_i
INCLUDEPATH += $$PWD/F:/GDAL-Qt/include
DEPENDPATH += $$PWD/F:/GDAL-Qt/include
这里需要修改为:
参考:http://powful1.blog.163.com/blog/static/56623216201521211559487/(不同的是我用的64位是可以的)
win32: LIBS += -LF:/GDAL-Qt/lib/ -lgdal_i
INCLUDEPATH += F:/GDAL-Qt/include
DEPENDPATH += F:/GDAL-Qt/include
(3)如果到此为止,运行程序会一直黑幕,没有结果,错误代码是:
exited with code -1073741510
需要在运行程序目录中添加相应的dll文件(bin文件夹中的),我是添加了所有的dill文件。
(4) 测试代码
GDALAllRegister();
const char* pszFile = "C:\\Users\\jin\\Desktop\\1.jpg";
GDALDataset *poDataset;
//使用只读方式打开图像
poDataset = (GDALDataset*) GDALOpen( pszFile,GA_ReadOnly );
if( poDataset == NULL )
{
printf( "File: %s不能打开!\n",pszFile);
return 0;
}
//输出图像的格式信息
printf( "Driver:%s/%s\n",
poDataset->GetDriver()->GetDescription(),
poDataset->GetDriver()->GetMetadataItem( GDAL_DMD_LONGNAME) );
//输出图像的大小和波段个数
printf( "Size is%dx%dx%d\n",
poDataset->GetRasterXSize(),poDataset->GetRasterYSize(),
poDataset->GetRasterCount());
(5) 配置了几天,今晚终于搞定啦,主要是因为没有放全dll文件,我之前只放gdal201.dll这个文件,后来把所有的dll文件都拷到运行程序文件夹里,就可以啦,,还要再深入研究研究,争取2016年年底前把GDAL好好学习学习。
(6)以后会经常记录学习gdal的过程,以便以后的复习,向李民录大神学习,哈哈。
2016-11-23更新:
关于要不要把所有的dll文件拷贝到运行程序的文件夹里的问题,最近测试了把相应的bin文件夹的路径加到系统变量里,就可以不用在加dll文件到运行程序里了,这样每次新建项目就不用那么麻烦啦。