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 错误:CMake 无法找到与“Unix Makefiles”对应的构建程序。 CMAKE_MAKE_PROGRAM 未设置