目录
参考文章:
GDAL2.4.4的下载以及在VS2015下的编译及配置(Win10)
所需环境
-
vs2022
-
gdal-2.4.4
-
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需要正确