Windows下使用Conda和CMake构建GDAL

本文介绍了如何在Windows上利用miniconda搭建环境,安装GDAL依赖,从源码获取并构建GDAL。首先安装miniconda并验证安装成功,接着创建名为gdal的conda环境,激活环境后安装所需依赖。GDAL源码可通过官方获取或下载,使用cmake进行构建。在构建过程中,可以使用cmake参数自定义是否包含特定库,如通过-DGDAL_SKIP=KML来避免引入KML库。

安装miniconda

安装miniconda
安装好后,键入Win+R,输入cmd打开cmd终端,输入conda --version,显示有conda版本后即表示安装成功。

安装GDAL依赖

打开cmd终端,输入如下命令,开始安装构建GDAL时所需的依赖。

conda create --name gdal
conda activate gdal
conda install --yes --quiet curl libiconv icu git python=3.7 swig numpy pytest zlib clcache
conda install --yes --quiet -c conda-forge compilers
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 librttopo libkml openssl xz

其中conda create --name gdal代表创建了名称为gdal的环境。
conda activate gdal激活当前环境为gdal。
codna install 在当前激活环境下安装依赖。

获取GDAL源码

GDAL源码获取的两种方式:

  • 直接从git获取
cd c:\dev
git clone https://github.com/OSGeo/gdal.git

构建GDAL

打开cmd终端,使用conda激活当前使用环境为gdal后,使用cmake构建。

conda activate gdal
cd c:\dev\gdal
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

conda activate gdal:在前面的步骤中,使用conda创建了名为gdal的环境,并为其安装了依赖,这里就直接激活使用该环境。
cd c:\dev\gdal:进入gdal源码目录。
cmake -S . -B build 使用cmake生成工程,windows下默认为vs2017_win-64,如果使用其它VS版本,可以通过cmake的-G参数指定,如:使用vs2019的情况:cmake -S . -B build -G "Visual Studio 16 2019"

Note

  • 使用cmake生成工程时,可以通过-D指定宏,如:在构建GDAL时我不想使用KML库,则可以指定宏GDAL_USE_LIBKML的值为OFF。这样生成的GDAL工程将不会引入kml库。更多的宏可以参考配置cmake的选项
cmake -S . -B build -G "Visual Studio 16 2019" -DGDAL_USE_LIBKML=OFF
  • 根据GDAL对cmake配置选项的描述中可以发现,在生成GDAL工程时,某些库的使用是根据该库是否被找到而决定的。
    cmake配置项介绍
    kml库,如果找到该库,则宏GDAL_USE_LIBKML值为
    ON,否则为OFF
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值