Window下编译GDAL3.3.1库64位(VS2015)

下载数据

1.下载GDAL源文件

https://gdal.org/download.html#current-releases;

2.下载Proj库文件

C:\Users\\anaconda3\pkgs\proj-8.0.0-h1cfcee9_0

编译

修改nmake.opt文件

# PROJ stuff (required dependency: PROJ >= 6)
PROJ_INCLUDE = -IC:\proj-8.0.0\Library\include
# Note: add shell32.lib is needed starting with PROJ 7.0 in some circumstances
# for static linking. See https://github.com/OSGeo/gdal/issues/2488
# And ole32.lib also since PROJ 7.1 (see https://github.com/OSGeo/gdal/issues/2743)
PROJ_LIBRARY = C:\proj-8.0.0\Library\lib\proj.lib shell32.lib ole32.lib

打开VS2015 x64 本机工具命令指示符

执行以下指令

cd C:\Qt\work\gdal-3.3.1\gdal-3.3.1
nmake /f makefile.vc MSVC_VER=1910 WIN64=YES
nmake /f makefile.vc install MSVC_VER=1910 WIN64=YES
nmake /f makefile.vc devinstall MSVC_VER=1910 WIN64=YES

测试

#include <iostream>
#include "gdal_priv.h"
#include "ogrsf_frmts.h"
#include "gdal_alg.h"

int main()
{
	GDALAllRegister();

	const char* image_name = "C:/Qt/work/map6/map.jpg";
	GDALDataset* dataset = (GDALDataset*)GDALOpen(image_name, GA_ReadOnly);
	if (!dataset)
	{
		std::cout << "error" << std::endl;
		return -1;
	}

	int width = dataset->GetRasterXSize();
	int height = dataset->GetRasterYSize();
	int count = dataset->GetRasterCount();
	std::cout << width << " " << height << " " << count << std::endl;

	GDALClose((GDALDatasetH)dataset);

	getchar();
	return 0;
}
posted @ 2021-08-21 11:06  暹罗吹雪  阅读(141)  评论(0编辑  收藏  举报