cmake - ROS Kinetic 'catkin_make' 失败,因为 PROJECT_NAME 设置为 Project
问题描述
我使用 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().
谢谢你。
解决方案
我能够重现您遇到的上述错误。为此,我打开了我的CMakeLists.txt
并注释了定义包名称的第二行,即project(package_name)
. 之后,我尝试通过 构建我的包catkin_make
,但出现以下错误(请参阅黄色框中的错误):
然后,在取消注释上述行后,我尝试构建相同的包。这次我能够成功构建我的包(测试,在我的情况下),没有任何错误。
CMakeLists.txt
文件包含project()
以及catkin_package()
前一个函数应该catkin_package()
在文件内部之前调用。所以,project(package_name)
要么从您的文件中丢失,要么CMakeLists.txt
被评论。
如果缺少,则手动添加。如果它在那里,但已评论,则取消评论。
CMakeLists.txt
从这里阅读更多关于文件正确格式的信息。
推荐阅读
- android - 签署 Android apk 时从管道访问 Azure DevOps 上的安全文件
- javascript - 为什么这个设置器在我代理它时没有给我截获的值?
- java - Java Jpa 自定义实体属性转换器和规范
- python - 熊猫移动平均计算缺少日期?
- java - 合并 HashMap 的键
- python-3.x - 在从 Big Query 读取的 Apache 光束管道中将浮点数转换为字符串
- encryption - 使用智能合约作为 ACL 加密/解密存储在 IPFS 上的数据
- php - 在订单确认邮件中添加子订单信息(WooCommerce / Dokan)
- python - 从不同屏幕截取的屏幕截图的不同 RGB 值
- android - 如何使用 SOTO 在 iOS 上调用 AWS Web 服务(API 网关)?