Как найти путь заголовка в cpp файле ROS - PullRequest
0 голосов
/ 07 апреля 2019

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

Я попытался gcc -H xx.cpp в текущем пути, но это просто покажет мне какой-то неуместный ответ.Например, меня интересует ros.h, а не string.Что касается 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 Ответ

1 голос
/ 07 апреля 2019

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

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

/opt/ros/<distribution_name>/include

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

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

...