Windows64下用VS2019从GitHub构建GDAL遇依赖缺失问题
VS2019编译GDAL源码:依赖缺失及PROJ/SWIG配置方案
一、优先用vcpkg批量解决依赖
GDAL依赖的ZLIB、OpenSSL、LibXml2、PROJ(≥6.0)等大部分库,用vcpkg一键安装最省心,还能自动处理路径:
- 安装vcpkg后,执行命令:
(按需去掉不需要的feature,比如不用MySQL就删掉vcpkg install gdal[core,mysql,sqlserver,curl,openssl,proj]:x64-windowsmysql) - 执行
vcpkg integrate install,让CMake自动识别vcpkg安装的库,之后构建时不用手动配置路径。
二、PROJ库手动配置(不用vcpkg时)
- 下载≥6.0的PROJ预编译包(或自己用CMake编译源码),解压到本地路径,比如
D:\libs\proj-9.2.0 - CMake GUI中:
- 找到
PROJ_INCLUDE_DIR,指向D:\libs\proj-9.2.0\include - 找到
PROJ_LIBRARY,指向D:\libs\proj-9.2.0\lib\proj.lib(Debug版选proj_d.lib)
- 找到
- 命令行直接指定:
cmake -G "Visual Studio 16 2019" -A x64 -DPROJ_INCLUDE_DIR=D:\libs\proj-9.2.0\include -DPROJ_LIBRARY=D:\libs\proj-9.2.0\lib\proj.lib ..
三、SWIG库配置
- 下载Windows版SWIG包,解压到本地,比如
D:\tools\swigwin-4.1.1 - CMake GUI中找到
SWIG_EXECUTABLE,指向D:\tools\swigwin-4.1.1\swig.exe - 命令行指定:
cmake -G "Visual Studio 16 2019" -A x64 -DSWIG_EXECUTABLE=D:\tools\swigwin-4.1.1\swig.exe ..
四、处理其他依赖缺失
- 如果不需要某些功能(比如MSSQL、MySQL),直接在CMake里禁用对应选项:设置
WITH_MSSQLNCLI=OFF、WITH_MYSQL=OFF,跳过这些库的检查 - 确实需要的依赖,优先用vcpkg安装,或者下载预编译包,在CMake中指定
XXX_INCLUDE_DIR和XXX_LIBRARY参数
五、完整CMake构建流程
- 在GDAL源码目录外新建
build文件夹(比如D:\gdal\build) - 打开CMake GUI,设置源码路径为GDAL根目录,构建路径为
build文件夹 - 点击
Configure,选择Visual Studio 16 2019和目标平台(x64/x86) - 解决依赖提示后,点击
Generate生成VS工程 - 打开生成的
GDAL.sln,选择Debug/Release模式,编译ALL_BUILD目标
内容的提问来源于stack exchange,提问作者Nithya
相关产品推荐
相关产品推荐

