Catkin_ws CMake 错误构建 package.xml 为空

Posted

技术标签:

【中文标题】Catkin_ws CMake 错误构建 package.xml 为空【英文标题】:Catkin_ws CMake error building the package.xml is empty 【发布时间】:2020-02-11 13:16:33 【问题描述】:

我正在尝试在 Ubuntu 16.04 上使用 ROS kinetic 构建 catkin 工作空间,但这是已经发生的错误,并且 package.XML 为空。所以我该怎么做?有什么建议么? 我也在使用凉亭,只想构建 CMake,但我做不到。我是 CMake 和 Ubuntu 的新手。

evadro@evadro-PowerEdge-T620:~/catkin_ws$ catkin build
-----------------------------------------------------------
Profile:                     default
Extending:             [env] /opt/ros/kinetic
Workspace:                   /home/evadro/catkin_ws
-----------------------------------------------------------
Build Space:        [exists] /home/evadro/catkin_ws/build
Devel Space:        [exists] /home/evadro/catkin_ws/devel
Install Space:      [unused] /home/evadro/catkin_ws/install
Log Space:          [exists] /home/evadro/catkin_ws/logs
Source Space:       [exists] /home/evadro/catkin_ws/src
DESTDIR:            [unused] None
-----------------------------------------------------------
Devel Space Layout:          linked
Install Space Layout:        None
-----------------------------------------------------------
Additional CMake Args:       None
Additional Make Args:        None
Additional catkin Make Args: None
Internal Make Job Server:    True
Cache Job Environments:      False
-----------------------------------------------------------
Whitelisted Packages:        None
Blacklisted Packages:        None
-----------------------------------------------------------
Workspace configuration appears valid.
-----------------------------------------------------------
Traceback (most recent call last):
  File "/usr/bin/catkin", line 11, in <module>
    load_entry_point('catkin-tools==0.4.5', 'console_scripts', 'catkin')()
  File "/usr/lib/python2.7/dist-packages/catkin_tools/commands/catkin.py", line 272, in main
    catkin_main(sysargs)
  File "/usr/lib/python2.7/dist-packages/catkin_tools/commands/catkin.py", line 267, in catkin_main
    sys.exit(args.main(args) or 0)
  File "/usr/lib/python2.7/dist-packages/catkin_tools/verbs/catkin_build/cli.py", line 422, in main
    summarize_build=opts.summarize  # Can be True, False, or None
  File "/usr/lib/python2.7/dist-packages/catkin_tools/verbs/catkin_build/build.py", line 283, in build_isolated_workspace
    workspace_packages = find_packages(context.source_space_abs, exclude_subspaces=True, warnings=[])
  File "/usr/lib/python2.7/dist-packages/catkin_pkg/packages.py", line 89, in find_packages
    packages = find_packages_allowing_duplicates(basepath, exclude_paths=exclude_paths, exclude_subspaces=exclude_subspaces, warnings=warnings)
  File "/usr/lib/python2.7/dist-packages/catkin_pkg/packages.py", line 150, in find_packages_allowing_duplicates
    xml, filename=filename, warnings=warnings)
  File "/usr/lib/python2.7/dist-packages/catkin_pkg/package.py", line 598, in parse_package_string
    raise InvalidPackage('The manifest contains invalid XML:\n%s' % ex, filename)
catkin_pkg.package.InvalidPackage: Error(s) in package '/home/evadro/catkin_ws/src/./package.xml':
The manifest contains invalid XML:
no element found: line 1, column 0

【问题讨论】:

【参考方案1】:

您的问题

package.xml 不能为空。 package.xml 包含有关您的包的所有信息,其中一些是必需的(例如包的名称)。这就是为什么您的错误代码会在最后告诉您:

清单包含无效的 XML:未找到元素:第 1 行,第 0 列

另外:你会把你的package.xml放在哪里?您不是为工作空间创建package.xml,而是为可以位于工作空间内部的包创建package.xml

如何修复你的 package.xml

在 ros.org 上有一个非常好的教程关于如何创建一个简单的包 here。如果您真的想创建一个包含空包的工作区,您可以转到工作区的src/(除了这个 src 文件夹之外不需要包含任何内容)并运行以下命令:

catkin_create_pkg theNameOfMyNewPackage

编辑:如果您想知道如何构建您的 package.xml 以及如何组织您的依赖项,还有一个非常有用的页面 Ros here

...但你真的想要一个吗?

但对我来说,您的问题听起来很像您实际上并不想要一个空包(因此根本没有 package.xml),而只是一个空的工作区。您可以通过在工作空间内的任何位置导航来实现这一点(同样,除了这个 src 文件夹之外不需要包含任何内容)并运行以下命令:

cakin init

之后,您仍然可以添加一些包 - 就像使用脚本 catkin_create_pkg

【讨论】:

感谢您的回答,但我不想创建一个新的 xml 包,我认为这样做会为我删除 package.xml 中的所有依赖项,但我不知道如何修复它并返回此依赖项 根据您的问题以及您的错误代码,您的 package.xml 为空。我以为那是因为你实际上没有包裹。如果你这样做了,你有一个完全不同的问题:那么你的问题就是 package.xml 适合你的包。 如果你真的想修复你的依赖,看看我刚刚添加的链接 这个链接罗斯在这里

以上是关于Catkin_ws CMake 错误构建 package.xml 为空的主要内容,如果未能解决你的问题,请参考以下文章

CMake Dlibdotnet.native 构建错误

C++ CMake 构建错误“未定义的参考”

CMake 错误:CMake 无法找到与“Unix Makefiles”对应的构建程序。 CMAKE_MAKE_PROGRAM 未设置

构建包时出现 Cmake 错误

Android Studio CMake 错误:构建命令失败

Cmake 的 CI2CV 构建错误