Visual Studio 2019 (vs2019) C++ 环境配置GDAL
在vs2019中配置、编译C++ 环境下GDAL库时,需要安装对应环境库:SQLite,PROJ,TIFF以及CURL工具。
GDAL库是一个非常方便的地理数据处理库,但其在C++ 环境下的配置与编译流程较为复杂。
版本选择:GDAL-3.5.2,PROJ-9.1.0,SQLite-3.44.2,tiff-4.6.0,curl-8.4.0_6-x86以及跨平台编译工具CMake-3.28.0。
编译结果:x86-release
文末有最终配置结果
1. SQLite (Win11+VS2019)
进入官网,下载相应版本
解压后,将5个文件都放到一个指定的文件夹下,将该文件夹的路径添加到系统环境变量中,即可通过cmd使用,目的是为了便于通过命令行的方式使用。
操作方法:
右键我的电脑-属性-高级系统设置-环境变量
,在系统环境变量中找到“Path”,选中“Path”,编辑,新建,将刚才的文件夹路径加入,例如:“C:\gdal-3.5.2\SQLite-3.44.2”。打开cmd
,输入sqlite3
,如果显示版本号等信息,即表示成功。
【sqlite3.exe
是 SQLite 的交互式命令行工具,它允许用户与 SQLite 数据库进行交互、执行 SQL 查询、管理数据库和表,以及进行各种数据库操作。
【生成sqlite3.lib
】
将文件sqlite-amalgamation-3450100.zip
、sqlite-dll-win-x86-3450100.zip
、sqlite-tools-win-x64-3450100.zip
文件置于同意文件夹下:
打开x86 Native Tools Command Prompt fo VS 2019
,切换路径 cd C:\third-lib\SQLite\x86
,并执行指令lib /def:sqlite3.def /machine:ix86
,生成sqlite3.lib
。(x64的话打开对应的命令行窗口并执行生成x64 lib的指令:lib /def:sqlite3.def /machine:X64
)
详细介绍:sqlite3.exe 是一个命令行界面的工具,它允许用户打开 SQLite 数据库文件,并在命令行中执行 SQL 语句。可以使用它来创建数据库、创建表、插入数据、查询数据、更新数据、删除数据等等。它对于开发、测试和调试 SQLite 数据库非常有用,也可以用于执行数据库备份和还原操作。可以通过在命令行中运行 sqlite3.exe 并指定数据库文件来启动它,然后在交互式命令行中输入 SQL 命令。
sqldiff.exe
是 SQLite 的数据库比较工具,用于比较两个 SQLite 数据库文件之间的结构和数据差异。
详细介绍:sqldiff.exe 用于比较两个 SQLite 数据库文件,查找它们之间的差异,包括数据库结构(例如,表、列、索引等)和数据。这对于在不同环境中同步数据库、检测更改或合并数据库非常有用。sqldiff.exe 生成一个 SQL 脚本,该脚本包含将一个数据库变更为另一个数据库的命令。可以使用该脚本来将一个数据库的更改应用到另一个数据库。
sqlite3_analyzer.exe
是 SQLite 的数据库性能分析工具,用于分析 SQLite 数据库文件的性能和结构。
详细介绍:sqlite3_analyzer.exe 可用于检查 SQLite 数据库文件的结构和性能特征。它可以生成详细的报告,包括数据库的 B 树索引结构、页面使用情况、表的大小等等。这些信息对于优化数据库查询和性能调整非常有用。另外还可以用于评估数据库文件的大小和性能,以便在需要时采取相应的措施来改进数据库的性能。】
参考链接:
https://blog.csdn.net/qq_62888264/article/details/132551224
https://blog.csdn.net/weixin_43729127/article/details/132724907
2.TIFF-4.6.0
下载TIFF库与Cmake
Cmake安装比较简单 此处下载的是精简版,解压后 执行bin文件里面的 cmake-gui.exe 即可用于编译了
根据个人需要进行版本设置
点击Configure 和 Generate 生成vs项目文件即可
编译TIFF
(VS2019)
以管理员身份打开Visual Studio 2019
打开项目解决方案
设置编译版本,进需要编译
"ALL_BUILD"
和"INSTALL"
,编译结果如果所示,编辑结果,如图所示C:/Program Files (x86)/tiff
参考链接:https://blog.csdn.net/oFengtingwano/article/details/130742086
3. Curl工具
curl是利用URL语法在命令行方式下工作的开源文件传输工具。它被广泛应用在Unix、多种Linux发行版中,并且有DOS和Win32、Win64下的移植版本。
• 找到官网windows 资源下载,点击红色标记部分。
• 根据需要选择x86 or x64
,此处选择curl 8.4.0 for Windows win32
配置环境变量: 进入系统变量,新建CURL_HOME
,路径选择解压包所在的路径,然后确定。
测试:curl --version
4. PROJ
PROJ库是一个地理坐标转换库,用以处理不同的地理坐标数据。
【Note】编译环境
首先,我们在PROJ库的官方下载网站中下载其源代码。
解压后
CMake软件,并在下图所示的两个编辑栏中,分别选定解压后的PROJ库文件夹与我们刚刚在其中新建的build文件夹;随后,点击“Configue
”。
在弹出的窗口中配置我们的Visual Studio软件版本,并在第二个选项中选择处理器的架构,一般选择x86
即可
Configure
Generate
Open Project
VS2019项目编译
打包编译成功的库
(1)打包头文件至./proj-9.1.0/include
..\proj-9.1.0\src\*.h + .\proj-9.1.0\include\*.h
(2)打包静态库 ./proj-9.1.0/lib
.\proj-9.1.0-build\lib\release\proj.lib
(3)打包动态库./proj-9.1.0/bin
注:这里文件的移动还需要将后面的文件名中的版本信息给删去,方便后面调用。
.\proj-9.1.0\lib\release\proj.dll
【Error
】
CMake进行Configure时,有报错信息,如下:原因由于没有对PROJ编译时的依赖库进行配置
sqlite、tiff和curl
依赖库配置后
5. gdal-3.5.2
GDAL官网对应版本下载
下载解压
CMake编译
Configure
时,根据报错信息进行依赖库文件路径配置
配置依赖库PROJ
库路径
然后就是Open Project ->在vs2019环境下编译项目
头文件目录
:将以6个头文件进行合并
动态库文件和静态库
文件:
最终结果
【测试】
:报错
处理:配置proj.db文件路径
:
std::string path = "C:\\gdal-3.5.2\\proj-9.1.0\\build\\data";
const char* proj_path[] = { path.c_str(), nullptr };
OSRSetPROJSearchPaths(proj_path);