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". Invoking "cmake" failed
时间: 2023-06-12 20:05:25 浏览: 419
这个错误是因为你的 ROS 工作空间中包含非 catkin 包,因此 catkin 无法在没有隔离的情况下构建非同质化的工作空间。你可以尝试使用 'catkin_make_isolated' 命令来代替 'catkin_make'。 'catkin_make_isolated' 命令可以在隔离的环境中构建工作空间,从而避免这个错误。你可以按照以下步骤进行操作:
1. 删除非 catkin 包,或将它们转换为 catkin 包。
2. 在工作空间的根目录下创建一个新的文件夹,例如 build_isolated。
3. 进入 build_isolated 文件夹,运行以下命令:
```
cmake ../src -DCATKIN_DEVEL_PREFIX=../devel_isolated -DCMAKE_INSTALL_PREFIX=../install_isolated
```
这个命令将使用隔离的环境构建工作空间。
4. 运行以下命令来编译和安装工作空间:
```
make install
```
5. 运行以下命令来更新环境变量:
```
source ../install_isolated/setup.bash
```
现在,你应该能够在隔离的环境中使用 'catkin_make_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文件以正确引用功能包的路径。
阅读全文