GDAL-3.3.2编译

前言

我的环境是win10+vs2019+gdal3.3.2

编译步骤

1.GDAL下载
(1)GDAL下载地址
(2)GEOS(Geometry Engine, Open Source)下载地址
(3)PROJ8下载地址

注意:
1.geos官网主页
不知道为什么选择 红色框的部分,无法下载,我只好用git 下载

在这里插入图片描述
使用 git bash下载
git clone https://git.osgeo.org/gitea/geos/geos.git
在这里插入图片描述

2.使用CMake编译GEOS源码,生成GEOS.sln工程
在这里插入图片描述
在这里插入图片描述
使用vs2019打开GEOS.sln, debug和release生成lib、dll
(1)debug:
lib在这里插入图片描述
dll
在这里插入图片描述

 (2)release
 lib

在这里插入图片描述

dll
在这里插入图片描述
3. proj编译

(1)proj下载地址
在这里插入图片描述
(2)使用CMake编译proj

在这里插入图片描述
发现proj需要依赖sqlit3,所以需要在CMakeLists.txt中配置sqlit3的安装路径
(3)下载sqlite
在这里插入图片描述
(4)编译sqlite
首先,把SQLite编译成动态链接库:
打开Visual Studio 2019,新建一个名为sqlite3的Visual C++ Win32工程,在工程向导页中选择工程的类型为 “DLL”, 并且把创建为空项目的复选框钩上。通过工程—>添加现有项…,把单一文件sqlite3.c添加到工程中。为了生成在链接sqlite3.dll时需要用到的lib文件,需要在工程中添加模块定义文件。根据sqlite3.h中列出的导出函数名
然后,把sqlite3.def文件拷贝到sqlite3工程下
在这里插入图片描述
最后生成sqlite3.dll和sqlite3.lib在这里插入图片描述
在这里插入图片描述

(5)编译proj
使用CMake生成工程
在这里插入图片描述

(6)使用conda编译gdal
gdal编译官方说明
在这里插入图片描述
翻译成中文:
a .下载git
b. 下载 miniconda
c. 然后再c盘创建dev目录
d.使用miniconde
在这里插入图片描述
在这里插入图片描述
e. 输入 “y”
f: 再输入:conda activate gdal
在这里插入图片描述

在这里插入图片描述
然后再输入
g:conda install --yes --quiet curl libiconv icu git python=3.7 swig numpy pytest zlib clcache
在这里插入图片描述

h:输入conda install --yes --quiet -c conda-forge compilers
在这里插入图片描述
i:conda install --yes --quiet -c conda-forge
cmake proj geos hdf4 hdf5
libnetcdf openjpeg poppler libtiff libpng xerces-c expat libxml2 kealib json-c
cfitsio freexl geotiff jpeg libpq libspatialite libwebp-base pcre postgresql
sqlite tiledb zstd charls cryptopp cgal jasper librttopo libkml openssl xz
注意:这里有换行符,如果直接复制到conda中,只能识别到第一行,解决办法把这行命令复制到txt文本中,并把反斜杠换行符去掉,组成一行命令,如下:
conda install --yes --quiet -c conda-forge cmake proj geos hdf4 hdf5 libnetcdf openjpeg poppler libtiff libpng xerces-c expat libxml2 kealib json-c cfitsio freexl geotiff jpeg libpq libspatialite libwebp-base pcre postgresql sqlite tiledb zstd charls cryptopp cgal jasper librttopo libkml openssl xz

然后把这行命令复制到conda中:然后回车
在这里插入图片描述
这里要经过漫长等待,大概1个小时左右,取决于各位看官老爷的网速哈,可以看到,conda是要下载相关的依赖库
在这里插入图片描述
然后:完成后,后自conda会自动切换到vs2017的路径
在这里插入图片描述

敲命令:cd c:\dev
在这里插入图片描述

然后敲命令:
git clone https://github.com/OSGeo/gdal.git

最重要的要来了,编译gdal,生成sln工程:

敲命令
cd c:\dev\gdal

敲命令:
cmake -S . -B build -DCMAKE_PREFIX_PATH:FILEPATH="%CONDA_PREFIX%"
-DCMAKE_C_COMPILER_LAUNCHER=clcache
-DCMAKE_CXX_COMPILER_LAUNCHER=clcache

                这里同样注意:把这段命令复制到txt文本中,去掉反斜杠,写成一行:
                cmake -S . -B build -DCMAKE_PREFIX_PATH:FILEPATH="%CONDA_PREFIX%" -DCMAKE_C_COMPILER_LAUNCHER=clcache -DCMAKE_CXX_COMPILER_LAUNCHER=clcache

然后敲命令:
cmake --build build --config Release -j 8

这样就会成gdal.sln工程,(如果运气好的话,哈哈),我这里运气不好,报了一大堆错,
虽然不能直接生成gdal.sln工程,好在生成了CMakeLists.txt文件,
我只好用CMake生成gdal.sln工程
在这里插入图片描述
有个警告,不知道为什么,先忽略

在这里插入图片描述
这里有2个错误,估计是CMake没有识别到zlib的头文件和库,那么,我们就在CMake中指定zlib的头文件和lib
在这里插入图片描述

包含zlib的头文件和lib

猜你喜欢

转载自blog.csdn.net/aoxuestudy/article/details/120926487