CMake Error at /opt/ros/melodic/share/catkin/cmake/catkin_workspace.cmake:100 (message): This workspace contains non-catkin packages in it, and catkin cannot build a non-homogeneous workspace without isolation. Try the 'catkin_make_isolated' command instead. Call Stack (most recent call first): CMakeLists.txt:69 (catkin_workspace) -- Configuring incomplete, errors occurred! See also "/home/q/catkin_ws/build/CMakeFiles/CMakeOutput.log". See also "/home/q/catkin_ws/build/CMakeFiles/CMakeError.log". Makefile:1020: recipe for target 'cmake_check_build_system' failed make: *** [cmake_check_build_system] Error 1 Invoking "make cmake_check_build_system" failed
时间: 2023-06-11 20:10:17 浏览: 383
这个错误是因为你的工作空间中包含非catkin包,而catkin不能在没有隔离的情况下构建非同质化的工作空间。你可以尝试使用 `catkin_make_isolated` 命令来代替 `catkin_make`,这样可以在隔离的环境中构建你的工作空间。你可以按照以下步骤操作:
1. 进入你的工作空间目录
```
cd /home/q/catkin_ws
```
2. 删除 build 和 devel 目录
```
rm -rf build/
rm -rf devel/
```
3. 运行 `catkin_make_isolated`
```
catkin_make_isolated --install --use-ninja
```
这应该会在你的工作空间目录中创建一个 build_isolated 目录,你可以在其中找到构建的二进制文件和库。
相关问题
CMake Error at /opt/ros/melodic/share/catkin/cmake/catkin_workspace.cmake:121
抱歉,我无法解答关于CMake错误的具体问题。但我可以提供一般的帮助。CMake是一个跨平台的构建工具,用于自动化构建过程。在ROS(机器人操作系统)中,它用于构建和管理ROS工作空间。CMake错误通常是由于配置文件或依赖项的问题引起的。您可以尝试检查CMakeLists.txt文件中的语法错误或确保依赖项正确安装。如果您能提供更详细的错误信息,我可能能够提供更具体的帮助。
CMake Error at /opt/ros/melodic/share/catkin/cmake/catkin_workspace.cmake:121 (add_subdirectory): The source directory
CMake Error at /opt/ros/melodic/share/catkin/cmake/catkin_workspace.cmake:121 (add_subdirectory): The source directory "/home/steve/catkin_ws/src" is not a subdirectory of "/home/steve/catkin_ws/src".这个错误是由于你把功能包的文件内容写到了src文件夹下导致的。在ROS中,功能包的文件应该按照特定的结构组织。你需要将功能包的文件正确放置在功能包的目录中,而不是src目录。
解决这个问题的方法是将你误放到src文件夹下的文件移动到正确的功能包目录中。确保你的包含CMakeLists.txt的文件夹是功能包的根目录,并且不是src目录。
在你的情况下,需要将文件从/home/steve/catkin_ws/src目录中移动到正确的功能包目录中。你可以根据你的包名创建一个新的文件夹,并将文件移动到该文件夹中。然后,更新CMakeLists.txt文件以正确引用功能包的路径。
阅读全文