5,172
社区成员




在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)
进入官网,下载相应版本
右键我的电脑-属性-高级系统设置-环境变量
,在系统环境变量中找到“Path”,选中“Path”,编辑,新建,将刚才的文件夹路径加入,例如:“C:\gdal-3.5.2\SQLite-3.44.2”。打开cmd
,输入sqlite3
,如果显示版本号等信息,即表示成功。sqlite3.exe
是 SQLite 的交互式命令行工具,它允许用户与 SQLite 数据库进行交互、执行 SQL 查询、管理数据库和表,以及进行各种数据库操作。 详细介绍: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
根据个人需要进行版本设置
点击Configure 和 Generate 生成vs项目文件即可
TIFF
(控制台编译) 按照上述说的生成项目文件后 再win搜索框中找到 x64 Native Tools CommandPrompt for VS 2019然后右键管理员打开X86或者X64
msbuild ALL_BUILD.vcxproj /p:Configuration="Release"
进入到tiff源码目录后 在控制台中输入如下命令 然后回车:
紧接着在继续输入如下命令 再回车:
C:\Program Files\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】编译环境
Configue
”。x86
即可Configure
Generate
Open Project
VS2019项目编译
./proj-9.1.0/include
.\proj-9.1.1\src\*.h + .\proj-9.1.1\src\*.h + .\proj-9.1.1\include\*.h
(2)打包静态库 ./proj-9.1.0/lib
.\proj-9.1.1-build\lib\release\proj.lib
(3)打包动态库./proj-9.1.0/bin
注:这里文件的移动还需要将后面的文件名中的版本信息给删去,方便后面调用。 .\proj-9.1.0\lib\release\proj.dll
【Error
】 CMake进行Configure时,有报错信息,如下:原因由于没有对PROJ编译时的依赖库进行配置
5. gdal-3.5.2 GDAL官网对应版本下载
CMake编译
Configure
时,根据报错信息进行依赖库文件路径配置PROJ
库路径头文件目录
:将以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);
文章来源: https://blog.csdn.net/weixin_43763284/article/details/134649830
版权声明: 本文为博主原创文章,遵循CC 4.0 BY-SA 知识共享协议,转载请附上原文出处链接和本声明。