conda安装GDAL+Visual Studio2019

conda安装GDAL+Visual Studio2019


第一次配置C++的第三方库,发现还可以用conda直接装,无需编译,写个博客记录一下。

GDAL安装

最开始在网上搜教程,基本都是下载GDAL的源码再编译,而且GDAL3.0要先装sqlite和proj。后来看到gdal官网推荐用conda安装。之前用Python装了Anaconda,就觉得试一下,免去了编译的过程。

  1. 新建环境。打开Anaconda的命令行。 conda create -n gdal python=3.6。然后conda activate gdal 激活。
  2. 根据官网的提示,直接敲conda install -c conda-forge gdal安装。
  3. 安装完成以后就可以配置VS了。

Visual Studio配置

  1. 新建项目,右键项目名称->属性

  2. 把编译器版本设成64位!!很重要,否则就相当于给32位的项目使用64位的lib,报错link2019,无法解析的外部符号。
    在这里插入图片描述

  3. 设置包含目录和库目录。常规->VC++目录
    包含目录即头文件.h所在的目录,库目录即.lib所在目录。Anaconda安装的GDAL的目录还和安装在哪个envs有关。默认应该是:
    包含目录:…\Anaconda3\envs\gdal\Library\include
    库目录:…\Anaconda3\envs\gdal\Library\lib
    可以双击空白,用三个点来选。

  4. 修改调试的工作目录。GDAL的运行需要一系列动态链接库的支撑。由于没有设置系统变量且conda没有把.dll文件装到lib目录下,还需要自己设置。
    配置属性->调试->工作目录
    \Anaconda3\envs\gdal\Library\bin
    在这里插入图片描述

  5. 链接。链接器->输入->附加依赖项 手敲gdal_i.lib。

测试

创建一个空项目,引入gdal读取一张影像。

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


using namespace std;

void getinfo(const char* filepath) {
	GDALAllRegister();        // 注册所有驱动
	GDALDataset* pDS = (GDALDataset*)GDALOpen(filepath, GA_ReadOnly);
	if (!pDS) {
		pDS = (GDALDataset*)GDALOpen(filepath,GA_ReadOnly);
	}
	char* cProject = (char*)pDS->GetProjectionRef();
	OGRSpatialReference srs;
	if (strlen(cProject) > 0) {
		OGRErr er = srs.importFromWkt(&cProject);
	}
	double dTransform[6];
	CPLErr er = pDS->GetGeoTransform(dTransform);
	if (er != CE_None)          //证明没有投影
		dTransform[5] = -1;
	GDALDataType gdalDataType = pDS->GetRasterBand(1)->GetRasterDataType();
	int gdalDataTypeSize = GDALGetDataTypeSize(gdalDataType);
	int XSize = pDS->GetRasterXSize();
	int YSize = pDS->GetRasterYSize();
	cout << "宽度为" << XSize << endl;
	cout << "高度为" << YSize << endl;
}

int main() {
	const char* filepath = "D:/Workspace/C++/gdaltest/test.tif";
	getinfo(filepath);
	return 0;
}

测试结果:
在这里插入图片描述

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值