You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu22.04 gcc11.2环境安装gdal-3.4.3报CMake SUBSTRING参数错误

问题根因

报错并非string(SUBSTRING ${GDAL_GIT_HASH} 0 10 REV)本身语法错误,是执行到该行时${GDAL_GIT_HASH}变量为空,变量展开后命令实际为string(SUBSTRING 0 10 REV),缺少待截取的字符串参数,因此触发参数数量不足的报错。
从编译日志可以看到,cmake调用阶段传入的-DGDAL_SHA1SUM=参数为空值,该问题几乎都出现在使用官网源码压缩包构建的场景:源码压缩包不携带.git目录元数据,cmake脚本调用git读取提交哈希时无法获取有效值,最终导致变量为空。

可行解决方案

任选以下一种方式处理即可:

  • 手动传入哈希参数重新配置:执行cmake配置命令时追加参数-DGDAL_SHA1SUM=0000000000000000000000000000000000000000(填入任意40位十六进制字符串即可,不影响GDAL实际功能,仅用于版本信息里的提交哈希记录),配置完成后重新执行make install。
  • 修改cmake脚本兼容空值:打开cmake/helpers/generate_gdal_version_h.cmake文件,在第27行的string(SUBSTRING...)代码前添加空值判断逻辑,给空哈希设置默认值,添加代码如下:
if(NOT GDAL_GIT_HASH)
    set(GDAL_GIT_HASH "0000000000000000000000000000000000000000")
endif()

保存修改后重新执行编译安装即可绕过报错。

  • 使用完整git仓库构建:删除现有源码,通过git拉取对应v3.4.3标签的完整GDAL源码仓库后重新构建,完整仓库携带.git元数据,构建脚本可自动读取正确的git提交哈希,不会触发空变量错误。

内容的提问来源于stack exchange,提问作者Pei JIA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.03 16:21:44