做网站公司怎么开拓更多业务,哈尔滨建筑信息网,一级造价工程师报考条件及科目,来宾网站制作公司Step.0 环境说明#xff08;vs版本#xff0c;CMake版本#xff09;
本地的IDE环境是vs2022#xff0c;安装的CMake版本是3.25.1。
Step.1 下载GDAL和依赖的组件
编译gdal之前需要安装gdal依赖的组件#xff0c;gdal所依赖的组件可以在官网文档找到#xff0c;可以根据…Step.0 环境说明vs版本CMake版本
本地的IDE环境是vs2022安装的CMake版本是3.25.1。
Step.1 下载GDAL和依赖的组件
编译gdal之前需要安装gdal依赖的组件gdal所依赖的组件可以在官网文档找到可以根据自己的开发需求来下载编译相应的组件在这里仅支持常用的数据及功能所以就只下载了sqlitelibtiffproj者几个依赖组件下载的地址如下 sqlitehttps://www.sqlite.org/download.html 根据自身的操作系统选择要下载的二进制文件。 libtiffhttps://download.osgeo.org/libtiff/我这里选择的是4.6.0版本。 projhttps://proj.org/en/9.3/download.html。 gdalhttps://download.osgeo.org/gdal/我下载的是3.8.2版本。 以上源码包已经上传以上链接访问不了的可以直接下载下载gdal相关源码包
Step.2 编译Sqlite
2.1 将之前下载的sqlite的三个压缩包全部解压到一个目录下。
2.1 在vs中新建一个名为SqliteCompile的空项目将sqlite3.c和sqlite3.def文件导入源文件将sqlite3.h和sqlite3ext.h导入头文件。 2.3 配置项目属性 1配置平台和生成的目标类型lib静态库 2配置预处理器定义 在预处理器定义中填入以下配置
_USRDLL
SQLITE_ENABLE_RTREE
SQLITE_ENABLE_COLUMN_METADATA
SQLITE_ENABLE_FTS5
SQLITE_ENABLE_UNLOCK_NOTIFY3设置模块定义文件 4编辑模块定义文件在sqlite3.def文件后添加 sqlite3_unlock_notify 5生成Release静态库 可以在项目目录中看到已经生成了lib静态库 6拷贝文件至指定目录在sqlite的成品目录下新建bin, lib, include三个目录bin目录放入解压的exe可执行文件include目录中放入.h头文件lib目录中放入上一步生成的lib库文件
Step.3 编译libtiff
1将之前下载的libtiff源码包解压 2打开CMake输入源码目录和build目录libtiff源码目录下的build目录点击Configure按钮。 3配置vs的版本和生成的平台配置好之后点击Finish然后点击主界面的Configure 4输出框打印了Configuring done即说明配置成功了可以修改安装libtiff的路径搜索框中搜索“CMAKE_INSTALL_PREFIX”设置安装路径之后点击Generate生成文件 生成成功打印“Generating done”这时可以在build目录中看到生成了vs的项目文件点击“Open Project”按钮打开文件 5在VS中设置生成Release版本及平台和之前的sqlite保持一致后面的编译过程也是如此生成ALL_BUILD和INSTALL两个项目生成成功后在之前CMAKE设置的“CMAKE_INSTALL_PREFIX”路径下可以看到生成的文件。
Step.4 编译proj
1将下载的proj源码包解压打开CMake选择源码目录和build目录在proj源码目录下新建build目录设置完成后点击Configure按钮设置vs版本和生成的平台 2生成过程中会报错查看日志是因为没有找到sqlite3这里搜索SQLITE3配置项设置sqlite3的include目录、lib文件和可执行文件顺便再把生成目标文件的目录一并设置了设置好之后再次点击Configure 3配置后还是报错查看日志发现找不到TIFF这里参考上一个步骤的方法搜索TIFF相关的配置配置libtiff的include目录和lib路径配置后再次Configure 4配置完成后还是报错日志中打印缺少Curl这里可以取消ENABLE_CURL的勾选使其不依赖curl再次Configure。另外如果本地访问不了github的话会报拉取代码失败的错误这时可以取消BUILD_TESTING选项的勾选。 5还是报错“projsync requires Curl”因为我们没有编译Curl而projsync依赖Curl自然配置projsync也就失败了这里可以去掉BUILD_PROJSYNC的选项 6打印Configuring done即说明配置完成再点击Generate按钮生成项目文件打印“Generating done”即说明生成成功 7点击打开项目按钮在vs中设置生成Release版本选择正确的平台生成ALL_BUILD和INSTALL两个项目生成成功后在之前设置的“CMAKE_INSTALL_PREFIX”路径下生成了PROJ相关的文件 至此编译proj的前序工作就完成了下面就可以开始编译gdal了。
[TIPS] CMake输入参数时建议不要直接复制到文本框最好使用选择目录活文件的方式填入编译proj的时候由于CMake配置目录的斜杠与反斜杠问题导致一个模块编译失败定位了很久。
Step.5 编译gdal
1解压下载的gdal源码包在解压后gdal的跟路径下创建build目录用于存放CMake生成的临时文件。打开CMake选择源码目录和build目录。 2点击Configure设置平台类型和vs的版本后进行配置发现报找不到PROJ的错误配置proj的路径和生成二进制的路径再点击配置。 3稍等片刻后会出现Configuring done这里一定要注意虽然Configure完成了但是我们并没有配置tiff和sqlite的依赖后面在编译和开发的时候大概率会有问题所以这里把sqlite和tiff的路径给配置上当然这里有很多其他的配置项后面有时间研究一下对应的功能。 4配置完之后点击Generate生成项目文件然后点击打开项目按钮。 5在vs中设置生成Release版本和平台类型依次生成ALL_BUILD和INSTALL两个项目生成成功后可以看到目标路径下生成了编译好的二进制文件和一些数据文件。
Step.6 环境验证
通过以上步骤在本地已经配置好了gdal现在在vs中新建一个c项目来简单验证一下可用性这个代码的功能也很简单就是先注册gdal然后加载一副图像如果正常执行就说明配置正确。
#include iostream
#include gdal.h
#include gdal_priv.h
using namespace std;int main() {GDALDataset* poDataset;GDALAllRegister();poDataset (GDALDataset*)GDALOpen(pic.tif, GA_ReadOnly);if (poDataset NULL){cout GDAL Configure OK;}return 0;
}
在执行前还需要配置下头文件和库的目录在项目的属性中分别配置编译gdal生成的include目录lib目录和lib文件路径 这样配置后还没完因为依赖了一些资源文件所以需要把依赖的资源文件添加到项目中。在解决方案管理器中添加gdal.dllproj_9_3.dlltiff.dll三个资源文件每个资源文件右键设置属性设置类型为复制文件。 至此gdal的开发环境搭建就ok了就可以进行基于gdal的一些开发了ENJOY!!!