外观
踩坑Robotics Stack Exchange7 个月前
ROS2下游包构建报错找不到FindTensorRT.cmake配置
本文由 AI 根据公开内容整理,可能有误,请以原文为准:Exporting a Find<Package>.cmake file in ROS2(Robotics Stack Exchange #118207)
状态:已解决
问题
ROS2库包使用自定义FindTensorRT.cmake可正常编译,但下游消费者包构建时报错Could not find a package configuration file provided by "TensorRT",提示缺少TensorRTConfig.cmake或tensorrt-config.cmake,且未找到对应模块路径,导致无法传递自定义Find模块信息给依赖方。
环境
ROS2构建系统,CMake,自定义FindTensorRT.cmake模块,无官方TensorRT CMake配置文件的第三方库环境。
解决办法
- 在包内
cmake/目录创建config_extras.cmake,使用get_filename_component获取当前文件路径并通过list(APPEND CMAKE_MODULE_PATH ...)将其追加到模块搜索路径。 - 在
CMakeLists.txt中使用install(FILES cmake/FindTensorRT.cmake DESTINATION share/${PROJECT_NAME}/cmake)安装自定义Find模块。 - 将
config_extras.cmake添加到${PROJECT_NAME}_CONFIG_EXTRAS变量列表中,确保其随包配置一同导出。 - 后续新增Find模块只需放入
cmake/目录并在install()指令中声明,config_extras.cmake会自动处理路径传播。
原问题作者:xperroni;采纳答案作者:xperroni。原内容依 CC BY-SA 4.0 授权,本页摘要同样依 CC BY-SA 4.0 授权。
来源
本页事实对应的公开页面,以原文为准。