Skip to content

踩坑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配置文件的第三方库环境。

解决办法 ​

  1. 在包内cmake/目录创建config_extras.cmake,使用get_filename_component获取当前文件路径并通过list(APPEND CMAKE_MODULE_PATH ...)将其追加到模块搜索路径。
  2. 在CMakeLists.txt中使用install(FILES cmake/FindTensorRT.cmake DESTINATION share/${PROJECT_NAME}/cmake)安装自定义Find模块。
  3. 将config_extras.cmake添加到${PROJECT_NAME}_CONFIG_EXTRAS变量列表中,确保其随包配置一同导出。
  4. 后续新增Find模块只需放入cmake/目录并在install()指令中声明,config_extras.cmake会自动处理路径传播。

原问题作者:xperroni;采纳答案作者:xperroni。原内容依 CC BY-SA 4.0 授权,本页摘要同样依 CC BY-SA 4.0 授权。

来源

本页事实对应的公开页面,以原文为准。

  1. Robotics Stack Exchange #118207:Exporting a Find<Package>.cmake file in ROS2访问 2026-10-27