我已经使用ROS Kinetic已有一段时间了,今天当我在ROS教程页面(http://wiki.ros.org/catkin/Tutorials/create_a_workspace之后创建一个新的catkin工作区时,出现CMake错误,指出PROJECT_NAME设置为Project,是无效的。我从未与自己创建的任何其他工作空间碰到这个问题。
由于不想搞砸我的其他工作空间,我不想惹上 toplevel.cmake 。
有任何想法为什么会这样?
CMake Error at /opt/ros/kinetic/share/catkin/cmake/catkin_package.cmake:91 (message):
catkin_package() PROJECT_NAME is set to 'Project', which is not a valid
project name. You must call project() before calling catkin_package().
谢谢。
答案 0 :(得分:0)
我能够重现您遇到的上述错误。为此,打开我的CMakeLists.txt
并注释定义包名称的第二行,即project(package_name)
。之后,我尝试通过catkin_make
构建我的包,但是遇到了以下错误(请参见黄色框内的错误):
然后,在取消注释以上行之后,我尝试构建相同的软件包。这次我能够成功构建我的包(以我的情况为例),而没有任何错误。
CMakeLists.txt
文件包含project()
和catkin_package()
,并且前一个函数应在文件中的catkin_package()
之前调用。因此,project(package_name)
文件中缺少CMakeLists.txt
或已注释。
如果缺少,请手动添加。如果有,但发表评论然后取消评论。
从here中详细了解CMakeLists.txt
文件的正确格式。
答案 1 :(得分:0)
具有讽刺意味的是,您将运行 : sudo apt-get install ros-<distro_name>-catkin to reinstall catkin
因为即使您清除了整个工作区,由于某些符号链接或包中的某些内容损坏,问题仍然存在,这将始终导致相同的错误,在重新安装时catkin 它对我有用,因为我知道我遇到了完全相同的问题。