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

执行cmake ..构建包时遇OMPL相关库未找到错误求助

CMake构建失败:OMPLAPPBASE_LIBRARY和OMPLAPP_LIBRARY未找到

执行cmake ..构建个人软件包时,出现两条CMake策略警告,且核心错误为OMPLAPPBASE_LIBRARY和OMPLAPP_LIBRARY未找到,这两个库被项目中的bsp-app-demo、bsp_lib等目标依赖。尝试多种方法未解决,怀疑问题与OMPL相关但无法定位具体原因。

完整错误日志(中文翻译)

CMake弃用警告 在CMakeLists.txt:297 (cmake_policy):
  CMP0042策略的旧行为将在未来版本的CMake中移除。

  cmake-policies(7)手册说明所有策略的旧行为均已弃用,仅在特定短期场景下才应将策略设置为OLD。项目应迁移至新行为,不要依赖设置为OLD。


-- CXX编译器标识为GNU 9.4.0
-- C编译器标识为GNU 9.4.0
-- 检查可用CXX编译器:/usr/bin/c++
-- 检查可用CXX编译器:/usr/bin/c++ -- 可用
-- 检测CXX编译器ABI信息
-- 检测CXX编译器ABI信息 - 完成
-- 检测CXX编译特性
-- 检测CXX编译特性 - 完成
-- 检查可用C编译器:/usr/bin/cc
-- 检查可用C编译器:/usr/bin/cc -- 可用
-- 检测C编译器ABI信息
-- 检测C编译器ABI信息 - 完成
-- 检测C编译特性
-- 检测C编译特性 - 完成
-- 构建Debug版本
-- 找到Boost:/usr/lib/x86_64-linux-gnu/cmake/Boost-1.71.0/BoostConfig.cmake (找到版本 "1.71.0") 找到组件: date_time thread serialization filesystem system program_options unit_test_framework chrono 
CMake警告(dev) 在/usr/share/cmake-3.16/Modules/FindOpenGL.cmake:275 (message):
  未设置策略CMP0072:当GLVND可用时,FindOpenGL默认优先使用GLVND。运行"cmake --help-policy CMP0072"查看策略详情。使用cmake_policy命令设置策略以抑制此警告。

  FindOpenGL同时找到旧版GL库:

    OPENGL_gl_LIBRARY: /usr/lib/x86_64-linux-gnu/libGL.so

  以及OpenGL和GLX的GLVND库:

    OPENGL_opengl_LIBRARY: /usr/lib/x86_64-linux-gnu/libOpenGL.so
    OPENGL_glx_LIBRARY: /usr/lib/x86_64-linux-gnu/libGLX.so

  OpenGL_GL_PREFERENCE未设置为"GLVND"或"LEGACY",因此为了兼容CMake 3.10及更早版本,将使用旧版GL库。
调用栈(最近调用优先):
  CMakeLists.txt:338 (find_package)
此警告面向项目开发者。使用-Wno-dev可抑制。

-- 找到OpenGL:/usr/lib/x86_64-linux-gnu/libOpenGL.so   
-- 查找Q_WS_X11
-- 查找Q_WS_X11 - 找到
-- 查找Q_WS_WIN
-- 查找Q_WS_WIN - 未找到
-- 查找Q_WS_QWS
-- 查找Q_WS_QWS - 未找到
-- 查找Q_WS_MAC
-- 查找Q_WS_MAC - 未找到
-- 找到Qt4:/usr/bin/qmake (找到合适版本 "4.8.7", 最低要求为 "4.4.3") 
-- 找到OMPL:/opt/ros/noetic/lib/x86_64-linux-gnu/libompl.so  
-- 找到Armadillo:/usr/lib/x86_64-linux-gnu/libarmadillo.so (找到版本 "9.800.4") 
-- 找到TinyXML:/usr/include  
CMake错误: 以下变量在项目中被使用,但被设置为NOTFOUND。
请设置它们或确保它们在CMake文件中被正确设置和测试:
OMPLAPPBASE_LIBRARY
    被目录/home/nishant/edpl-ompl中的目标"bsp-app-demo"链接
OMPLAPP_LIBRARY
    被目录/home/nishant/edpl-ompl中的目标"bsp-app-demo"链接
    被目录/home/nishant/edpl-ompl中的目标"bsp_lib"链接

-- 配置未完成,发生错误!
另请参阅 "/home/nishant/edpl-ompl/build/CMakeFiles/CMakeOutput.log"。
另请参阅 "/home/nishant/edpl-ompl/build/CMakeFiles/CMakeError.log"。

解决建议

  • 确认OMPL App库是否安装
    系统默认或ROS提供的OMPL包通常只包含核心库,OMPL App是额外的可视化/应用组件。需手动从源码编译安装OMPL,并在cmake时启用OMPL App:
    git clone https://github.com/ompl/ompl.git
    cd ompl && mkdir build && cd build
    cmake -DOMPL_BUILD_APP=ON ..
    make -j$(nproc)
    sudo make install
    
  • 手动指定库路径
    如果已安装OMPL App但CMake无法自动找到,可在项目的CMakeLists.txt中手动设置路径:
    set(OMPLAPPBASE_LIBRARY "/usr/local/lib/libomplappbase.so")
    set(OMPLAPP_LIBRARY "/usr/local/lib/libomplapp.so")
    
  • 修复CMake策略警告(非致命,可选)
    • 针对CMP0042:在CMakeLists.txt开头添加cmake_policy(SET CMP0042 NEW),启用RPATH新行为
    • 针对CMP0072:添加set(OpenGL_GL_PREFERENCE "GLVND"),明确使用GLVND版本的OpenGL库

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 21:57:56