VS2019配置C++版本的GDAL

news/2024/9/21 1:51:27 标签: c++, 开发语言

VS2019配置GDAL教程

【特别注意】

vs2019编译好的GDAL库是可以在VS2022上面使用的,我这边做项目已经测试过没有问题,所以vs2022使用vs2019编译的gdal没有问题。

【编译版本介绍】

由于GDAL在vs2019源码流程有点复杂,因此我们在这不做讲解,具体可以参考网上其他从源码编译教程。这里我编译各个源码版本如下:

curl-7.79.1.zip
gdal-3.3.2.zip
geos-3.9.1.tar.bz2
PROJ-8.1.1.zip
sqlite-amalgamation-3360000.zip
sqlite-dll-win64-x64-3360000.zip
tiff-4.3.0.tar.gz

【编译好的文件下载】

 本次是将GDAL 3.3.2进行编译的,下载链接:

https://download.csdn.net/download/FL1623863129/89775523

    下载后的文件进行解压,包括如下文件夹

解压到一个非中文且没有空格路径即可。我是解压如下文件夹

【环境变量添加】 

在VS上配置前,需要将GDAL文件路径添加到环境变量中,右击我的电脑,在属性中找到高级系统设置,在系统变量中找到path,双击后点击新建,将GDAL的bin路径,添加进来即可。可以参考如下,我添加的路径(E:\projects\gdal332\gdal_install\bin)。

 *********需要说明的,在系统环境中添加变量后,一定要重启vs和相关程序(建议重启系统,不重启记得要重启运行所有程序包括cmd,vs等),否则后面配置完,程序报错!!!

搜索栏输入enviroment关键词,选择编辑系统环境变量

选择用户变量或者系统变量之一Path即可,我选的是系统变量的Path

 

把GDAL路径加进去E:\projects\gdal332\gdal_install\bin(请对应自己路径)

【 VS环境配置 】

在新建好的VS2019工程,将工程设置成x64 Release,再右击项目属性

右键单机项目选择属性 

选C/C++---附加包含目录加入include目录,之后点击确定即可

 选链接器---常规--附加库目录,添加lib目录后点击确定即可

 选链接器---输入--附加依赖项,加入lib文件,就是E:\projects\gdal332\gdal_install\lib文件夹里面所有lib文件名字

 【配置环境检测】

 使用GDAL读写图片,该图片本身像素为641*606,读写进入后,获取其x、y轴像素,代码如下。

#include "gdal_priv.h"
#include<iostream>  
using namespace std;
int main()
{
	const char* pszFile;
	GDALAllRegister();
	pszFile = "D:\\test.jpg";
	GDALDataset* poDataset = (GDALDataset*)GDALOpen(pszFile, GA_ReadOnly);
	GDALRasterBand* poBand = poDataset->GetRasterBand(1);
	int xsize = poBand->GetXSize();
	int ysize = poBand->GetYSize();
	cout << xsize << endl;
	cout << ysize << endl;
	getchar();
 
	return 0;
}

运行结果:

 由结果可知,获取的图片像素正确,程序正常运行。 

为了满足不同需要,我又编译了下面一些版本,提供大家下载:

vs2015从源码编译gdal3.3.2好的库文件x64-release版本

https://download.csdn.net/download/FL1623863129/89775594

vs2017从源码编译gdal3.3.2好的库文件x64-release版本

https://download.csdn.net/download/FL1623863129/89775579

vs2019从源码编译gdal3.5.3好的库文件x64-release版本

https://download.csdn.net/download/FL1623863129/89775569


http://www.niftyadmin.cn/n/5667986.html

相关文章

【RabbitMQ】死信队列、延迟队列

死信队列 死信&#xff0c;简单理解就是因为种种原因&#xff0c;无法被消费的消息。 有死信&#xff0c;自然就有死信队列。当一个消息在一个队列中变成死信消息之后&#xff0c;就会被重新发送到另一个交换器中&#xff0c;这个交换器就是DLX&#xff08;Dead Letter Excha…

macos清理垃圾桶时提示 “操作无法完成,因为该项目正在使用中” 解决方法 , 强制清理mac废纸篓 方法

在macos中&#xff0c;删除文件后&#xff0c; 在清理垃圾桶时提示 “操作无法完成&#xff0c;因为该项目正在使用中” 出现这个提示&#xff0c;在大多数的情况下是因为数据问题导致&#xff0c;需要通过磁盘管理工具进行修复&#xff0c;修复后才可彻底的清理垃圾桶。 另外…

【目标检测】labelimg图像标注软件的使用流程

一、labelimg检测图片标注 1、下载labelimg.exe 链接&#xff1a;https://pan.baidu.com/s/1yk8ff56Xu40-ZLBghEQ5nw 提取码&#xff1a;vj8f 下载的文件是编译好的&#xff0c;可执行的labelImg.exe文件。直接将文件放在windows环境下&#xff0c;双击可执行。&#xff08;如果…

Redis-Redis的五种数据结构及使用场景

Redis的数据结构有&#xff1a; String(字符串)&#xff1a;可以用来做最简单的数据缓存&#xff0c;可以缓存某个简单的字符串&#xff0c;也可以缓存某个json格式的字符串&#xff0c;Redis分布式锁的实现就利用了这种数据结构&#xff0c;还包括可以实现计数器、Session共享…

边缘计算网关:连接中心计算与边缘设备的重要桥梁-天拓四方

一、边缘计算网关&#xff1a;重新定义信息高速公路的“路标” 边缘计算网关&#xff0c;作为边缘计算生态系统中的核心组件&#xff0c;不仅承载着数据传输的功能&#xff0c;更是智能信息处理的关键节点。它通过分布式计算架构&#xff0c;将数据处理任务前置到网络边缘&…

大数据时代的等保测评:数据安全与隐私保护

在大数据时代&#xff0c;等保测评&#xff08;信息安全等级保护测评&#xff09;对于数据安全与隐私保护具有至关重要的意义。随着大数据技术的飞速发展&#xff0c;数据已成为企业最宝贵的资产之一&#xff0c;但同时也带来了前所未有的安全挑战。以下是对大数据时代等保测评…

YOLOv8改进系列,YOLOv8替换主干网络为PP-HGNetV2(百度飞桨视觉团队自研,助力涨点)

摘要 PP-HGNetV2(High Performance GPU Network V2) 是百度飞桨视觉团队自研的 PP-HGNet 的下一代版本,其在 PP-HGNet 的基础上,做了进一步优化和改进,最终在 NVIDIA GPU 设备上,将 “Accuracy-Latency Balance” 做到了极致,精度大幅超过了其他同样推理速度的模型。其在…

OpenHarmony(鸿蒙南向开发)——小型系统内核(LiteOS-A)【扩展组件】上

往期知识点记录&#xff1a; 鸿蒙&#xff08;HarmonyOS&#xff09;应用层开发&#xff08;北向&#xff09;知识点汇总 鸿蒙&#xff08;OpenHarmony&#xff09;南向开发保姆级知识点汇总~ 子系统开发内核 轻量系统内核&#xff08;LiteOS-M&#xff09; 轻量系统内核&#…