Catkin_ws Ошибка CMake при создании package.xml пуст
Я пытаюсь создать рабочее пространство catkin с помощью кинетики ROS в Ubuntu 16.04, но возникла ошибка, и файл 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
Существует очень хороший учебник по ros.org о том, как создать простой пакет здесь. Если вы действительно хотите создать рабочую область с пустым пакетом в ней, вы можете перейти кsrc/
вашего рабочего пространства (которое пока не должно содержать ничего, кроме этой src-папки) и выполните следующую команду:
catkin_create_pkg theNameOfMyNewPackage
Edit: если вы задаетесь вопросом, как структурировать package.xml и как организовать зависимости, есть также очень полезная страница по Роси здесь
... но ты правда хочешь?
Но для меня ваш вопрос звучит так, как будто вы на самом деле не хотите иметь пустой пакет (и, следовательно, вообще не иметь package.xml), а просто пустое рабочее пространство. Вы можете добиться этого, перемещаясь в любом месте вашего рабочего пространства (которое, опять же, пока не должно содержать ничего, кроме этой src-папки), выполнив следующую команду:
cakin init
После этого вы все еще можете добавить некоторые пакеты - как со скриптом catkin_create_pkg
.