You need to enable JavaScript to run this app. Ubuntu 16.04 LTS执行cmake ..时找不到GeographicLib报错如何解决
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 16.04 LTS执行cmake ..时找不到GeographicLib报错如何解决

CMake 配置阶段找不到 GeographicLib 报错处理

该报错的核心原因是项目自带的自定义FindGeographicLib.cmake查找脚本,没有正确识别Ubuntu系统源安装的GeographicLib路径,并非实际缺少对应依赖包。

前置校验依赖安装完整性

  • 执行dpkg -L libgeographic-dev 查看已安装的GeographicLib开发包的实际文件路径
  • 如果查询结果中没有对应头文件、动态/静态库文件,先执行sudo apt install libgeographic-dev 补齐开发包(仅安装运行库是无法被CMake识别到的)
  • 经确认Ubuntu 16.04 apt源提供的1.45-2版本GeographicLib,默认安装路径为:
    • 头文件目录:/usr/include/GeographicLib
    • 库文件路径:x86架构下为/usr/lib/x86_64-linux-gnu/libGeographic.so,arm架构下对应为/usr/lib/arm-linux-gnueabihf/libGeographic.so

快速绕过查找脚本识别问题

不需要修改项目源码,直接在执行cmake ..命令时,把报错提示缺失的两个变量显式传入CMake,跳过自定义脚本的自动查找逻辑:

  • 完整执行命令示例:
cmake .. -DGeographicLib_INCLUDE_DIR=/usr/include/GeographicLib -DGeographicLib_LIBRARY=/usr/lib/x86_64-linux-gnu/libGeographic.so
  • 注意库文件路径要和第一步用dpkg查到的实际软链文件名完全一致,不要硬编码带版本号的实际库文件(比如libGeographic.so.14),要指向开发包提供的无版本号软链。

自定义查找脚本适配调整

如果手动传参后仍报错,直接修改项目自带的cmake/FindGeographicLib.cmake文件:

  • 定位文件里的find_path(查找头文件)、find_library(查找库文件)命令
  • 把上面查到的系统实际安装路径,加到两个命令的搜索路径列表中,解决脚本仅硬编码搜索/usr/local路径、漏掉系统默认安装路径的问题
  • 修改后删除build目录下残留的CMakeCache.txt缓存文件,再重新执行配置命令。

常见踩坑点

  • 不要混用源码编译安装的GeographicLib和apt源安装版本:如果之前在/usr/local路径下手动编译安装过GeographicLib,要清理对应路径下的残留文件,避免查找脚本优先匹配到不完整的安装目录
  • 所有依赖的版本要求已经满足:当前安装的1.45-2版本符合报错提示的最低1.45版本要求,只要路径识别正确即可通过校验,不需要升级GeographicLib版本,也不需要升级当前使用的3.5版本CMake。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.04 20:27:08