Как найти путь к заголовку в cpp-файле ROS

#c #gcc #header #ubuntu-16.04 #ros

#c #gcc #заголовок #ubuntu-16.04 #ros

Вопрос:

Я учусь программировать на ros. И первая трудность для меня — это заголовочные файлы. Я хочу прочитать исходный код, но вопрос в том, где они? Как мне найти эти файлы заголовков?

Я пытался gcc -H xx.cpp указать текущий путь, но он просто показывает мне какой-то нерелевантный ответ. Например, меня интересует ros.h, а не строка. Для ros.h это говорит мне

 fatal error: ros/ros.h: No such file or directory compilation terminated. 
  

Сейчас я понятия не имею.

 dale@dale-Aspire-EC-471G:~/Compile/src/learningros/chapter8_tutorials/src$ gcc -H tf_broadcaster.cpp 
tf_broadcaster.cpp:1:21: fatal error: ros/ros.h: No such file or directory
compilation terminated.

dale@dale-Aspire-EC-471G:~/Compile/src/learningros/chapter8_tutorials/src$ gcc -H odometry.cpp 
. /usr/include/c  /5/string
.. /usr/include/x86_64-linux-gnu/c  /5/bits/c  config.h
... /usr/include/x86_64-linux-gnu/c  /5/bits/os_defines.h
.... /usr/include/features.h
..... /usr/include/x86_64-linux-gnu/sys/cdefs.h
...... /usr/include/x86_64-linux-gnu/bits/wordsize.h
..... /usr/include/x86_64-linux-gnu/gnu/stubs.h
...... /usr/include/x86_64-linux-gnu/gnu/stubs-64.h
..............
........ /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h
........ /usr/include/x86_64-linux-gnu/bits/time.h
......... /usr/include/x86_64-linux-gnu/bits/timex.h
....... /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h
........ /usr/include/x86_64-linux-gnu/bits/wordsize.h
....... /usr/include/x86_64-linux-gnu/bits/setjmp.h
........ /usr/include/x86_64-linux-gnu/bits/wordsize.h
....... /usr/include/x86_64-linux-gnu/bits/wordsize.h
.... /usr/include/x86_64-linux-gnu/c  /5/bits/atomic_word.h
... /usr/include/c  /5/ext/alloc_traits.h
.. /usr/include/c  /5/bits/basic_string.tcc
odometry.cpp:2:21: fatal error: ros/ros.h: No such file or directory
compilation terminated.
  

Я ожидаю найти эффективный способ поиска заголовка в cpp-файле, который я хочу знать. Надеюсь, вы можете помочь или дать мне несколько советов.

Комментарии:

1. Проверьте переменную среды ROS_ROOT . Это должен быть путь установки ros: wiki.ros.org/ROS/EnvironmentVariables

Ответ №1:

Команда gcc -H odometry.cpp перечислит все пути, по которым gcc выполняет поиск файлов заголовков. Поскольку предыдущая команда выдала сообщение об ошибке, в котором говорилось, что не удалось найти этот заголовок, этот список не будет включать местоположение, иначе предыдущая команда нашла бы ros/ros.h и не выдала эту ошибку.

Расположение этих файлов заголовков при стандартной установке ROS будет:

 /opt/ros/<distribution_name>/include
  

Путь к этим файлам заголовков будет настроен для вас автоматически, если вы запустили сценарий установки source /opt/ros/<distribution_name>/setup.bash или включили его в свой .bashrc скрипт.

Надеюсь, это поможет.

Комментарии:

1. Э, но я добавил «source / opt / ros /kinetic /setup.bash» в ~/.bashrc с тех пор, как я изучил ros, и это не будет ошибкой при запуске этих cpp-файлов. На самом деле, я уделяю больше внимания тому, как найти заголовок в ros.