小鱼 ROS 2 新书上线!点击链接查看, 新书配套视频点击链接查看。
提问前必看的发帖注意事项—— 提问前必看!不符合要求的问题拒绝回答!!
社区使用指南—如何添加标签修改密码
关于跑某个开源的报错
-
CMake Error at /opt/ros/humble/share/io_context/cmake/io_context-extras.cmake:17 (find_package): By not providing "Findasio_cmake_module.cmake" in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file provided by "asio_cmake_module", but CMake did not find one. Could not find a package configuration file provided by "asio_cmake_module" with any of the following names: asio_cmake_moduleConfig.cmake asio_cmake_module-config.cmake Add the installation prefix of "asio_cmake_module" to CMAKE_PREFIX_PATH or set "asio_cmake_module_DIR" to a directory containing one of the above files. If "asio_cmake_module" provides a separate development package or SDK, be sure it has been installed. Call Stack (most recent call first): /opt/ros/humble/share/io_context/cmake/io_contextConfig.cmake:41 (include) /opt/ros/humble/share/serial_driver/cmake/ament_cmake_export_dependencies-extras.cmake:21 (find_package) /opt/ros/humble/share/serial_driver/cmake/serial_driverConfig.cmake:41 (include) /opt/ros/humble/share/ament_cmake_auto/cmake/ament_auto_find_build_dependencies.cmake:67 (find_package) CMakeLists.txt:20 (ament_auto_find_build_dependencies)
报错内容是找不到asio_cmake_moduleConfig.cmake和 asio_cmake_module-config.cmake。
了解到asio是boost下的库,我尝试重装了一下boost,但是asio中还是没有这个包,不知道为什么他们会出现在ros/humble/share/io_context/cmake/io_context-extras.cmake 中
有没有人遇到这种情况?ps.跑的是关于视觉导航的开源
二编补充:
我的主要疑问是,不知道asio_cmake_moduleConfig.cmake和 asio_cmake_module-config.cmake这两个包是哪里来的。搜索不到这两个包的说明(开源文档中也没有相关说明),而本人属于小白,还没有能力修改io_context中的文件实现对应功能。而且也不知道这两个包具体是做什么的。 -
遇到这种CMake错误,通常是因为CMake在尝试找到并加载一个特定的CMake模块或配置文件时失败了。在你的情况中,CMake正在寻找
asio_cmake_module
的配置文件,但未能找到。尽管asio
是Boost库的一部分,但这里的asio_cmake_module
很可能是一个用于简化asio集成到CMake项目的第三方模块或包。这里有几个步骤可以帮助你解决这个问题:
-
确认
asio_cmake_module
的存在:- 首先,检查你的项目依赖或文档,看看是否有提到需要安装或配置
asio_cmake_module
。 - 搜索是否有
asio_cmake_module
的官方仓库或第三方包,并查看其安装说明。
- 首先,检查你的项目依赖或文档,看看是否有提到需要安装或配置
-
安装
asio_cmake_module
:- 如果找到了
asio_cmake_module
的源或包,按照其提供的说明进行安装。 - 确保安装后,
asio_cmake_moduleConfig.cmake
或asio_cmake_module-config.cmake
文件存在于你的系统中,并且CMake的搜索路径能够找到它们。
- 如果找到了
-
修改CMake的搜索路径:
- 如果
asio_cmake_module
已经安装,但CMake仍然找不到它,你可以尝试在CMakeLists.txt中添加以下命令来指定搜索路径:list(APPEND CMAKE_MODULE_PATH "/path/to/asio_cmake_module") find_package(asio_cmake_module REQUIRED)
- 或者,设置
asio_cmake_module_DIR
变量指向包含asio_cmake_moduleConfig.cmake
或asio_cmake_module-config.cmake
的目录:set(asio_cmake_module_DIR "/path/to/asio_cmake_module") find_package(asio_cmake_module REQUIRED)
- 如果
-
检查ROS环境:
- 考虑到你的项目与ROS相关,有可能是ROS的某个包或依赖项需要
asio_cmake_module
。查看ROS的官方文档或社区论坛,看看是否有其他人遇到并解决了相同的问题。 - 确保你的ROS环境(包括所有依赖的包)都已正确安装和配置。
- 考虑到你的项目与ROS相关,有可能是ROS的某个包或依赖项需要
-
考虑替代方案:
- 如果找不到或无法安装
asio_cmake_module
,你可以考虑直接使用Boost.Asio而不是通过asio_cmake_module
。这通常意味着你需要自己编写一些CMake脚本来找到并链接Boost库。
- 如果找不到或无法安装
-
查看CMake的详细输出:
- 使用
cmake -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON ..
来构建你的项目,这可以显示CMake在尝试找到和加载包时所做的所有尝试。
- 使用
希望这些步骤能帮助你解决问题!如果问题仍然存在,可能需要更详细地查看你的项目配置或寻求更具体的帮助。
以上为生成回答,仅供参考~
-
-
我也有这个报错,你有解决方法了吗?求求来
-
sudo apt-get install ros-humble-asio-cmake-module
试试这个 -
@Astra 可以的大佬,谢谢解答