windows环境下GDAL配置

目录

GDAL源码下载

GDAL编译配置项参数修改

GDAL编译过程

编译工具选择

编译命令

编译结果测试

GDAL环境配置

include

lib

依赖项

dll

测试GDAL库的引入

测试代码

测试结果

备注


参考文章:

GDAL2.4.4的下载以及在VS2015下的编译及配置(Win10)

VS2019 GDAL2.2.4环境搭建

所需环境

  1. vs2022

  2. gdal-2.4.4

  3. windows10x64

GDAL源码下载

gdal-2.4.4版本下载:下载链接

 将下载好的压缩包解压至自定义路径。本文解压路径为:D:\Packages\gdal-2.4.4

GDAL编译配置项参数修改

打开下载好的gdal-2.4.4文件夹,找到nmake.opt文件,修改配置参数:

1.编译后的gdal保存路径

找到第57行,GDAL_HOME = "C:\warmerda\bld"这个路径是用来存储编译后的头文件、静态库、动态库等;路径可以进行自定义修改,本文此处修改为D:\Packages\GDAL244;也可以不做修改。

2. 第191行,去掉#,用于编译64为的GDAL

GDAL编译过程

编译工具选择

打开VS2022下的x64本地工具命令提示符,选择管理员身份运行;

 ps:本文中展示的是英文版的,对应中文版名称为VS2022 X64 本机工具命令提示符

注意:此处必须选择vs2022的x64位本机工具命令提示符,因为在nmake.opt中指定了选择编译为64位。

编译命令

1.启动工具后转到解压gdal-2.4.4所在文件夹D:\Packages\gdal-2.4.4

d:

cd D:\Packages\gdal-2.4.4

2.编译gdal

编译GDAL,请注意查看自己vs版本

nmake /f makefile.vc MSVC_VER=1936

生成bin、html、data文件夹

nmake /f makefile.vc install MSVC_VER=1936

生成lib、include文件夹

nmake /f makefile.vc devinstall MSVC_VER=1936

PS:MSVC_VER的确定

  • 打开vs2022,新建控制台项目

  • 打开main.cpp并填写如下代码

#include <iostream>
using namespace std;

​int main() {
    int num = _MSC_VER; // get the version
    cout << "My MSVC version is: " << num << endl;
    return 0;
 }
  • ctrl+F5执行,查看输出结果

编译结果测试

GDAL环境配置

C++引入一个外部库需要两部分:include、lib。环境配置通过右键项目-属性打开。

include

在C/C++下的常规-附加包含目录填入include所在目录;

lib

在链接器下的常规-附加库目录填入lib所在目录;

依赖项

在链接器下的输入-附加依赖项中填入gdal_i.lib

dll

        将编译好的gdal中bin库中的gdal204.dll放入项目的可执行文件.exe所在目录下,不然程序编译时会报错。

        本文解决方案名为ConsoleApplication1项目名为ConsoleApplication1。dll文件放在可执行文件同级目录下:

测试GDAL库的引入

测试代码

#include<iostream>
#include"stdio.h"
#include<gdal.h>
#include<gdal_priv.h>
using namespace std;

int main()
{
 GDALDataset *poDataset;
 GDALAllRegister();
 poDataset = (GDALDataset*)GDALOpen("D:\\1.tiff", GA_ReadOnly);
 if (poDataset == NULL)
	{
		cout << "文件打开失败!!!";
	}
	else {
		cout << "文件打开成功!!!";
	}
 int nBandCount = poDataset->GetRasterCount();
 int nImgSizeX = poDataset->GetRasterXSize();
 int nImgSizeY = poDataset->GetRasterYSize();   
 
 cout<<nBandCount<<endl<<nImgSizeX<<endl<<nImgSizeY;
 return 0;
 }

注意:需要D:\1.tiff文件。在D盘放一个图片,然后修改代码中对应文件路径即可。

测试结果

 注意:如果编译后的gdal,无法引入gdal_priv.h,那便是编译gdal过程出现问题,可能便是使用本机工具命令提示符错误引起。

备注

其他版本Visual Studio编译过程与vs2022一致,关键在于选择的本机命令调试工具需要正确以及MSVC_VER需要正确

猜你喜欢

转载自blog.csdn.net/qq_45929977/article/details/131987015
今日推荐